You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*********************************************************************
* NAN - Native Abstractions for Node.js * * Copyright (c) 2018 NAN contributors * * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
********************************************************************/
#ifndef NAN_CONVERTERS_43_INL_H_
#define NAN_CONVERTERS_43_INL_H_
#define X(TYPE) \
imp::ToFactory<v8::TYPE>::return_t \ imp::ToFactory<v8::TYPE>::convert(v8::Local<v8::Value> val) { \ v8::Isolate *isolate = v8::Isolate::GetCurrent(); \ v8::EscapableHandleScope scope(isolate); \ return scope.Escape( \ val->To ## TYPE(isolate->GetCurrentContext()) \ .FromMaybe(v8::Local<v8::TYPE>())); \ }
X(Number) X(String) X(Object) X(Integer) X(Uint32) X(Int32) // V8 <= 7.0
#if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
X(Boolean) #else
imp::ToFactory<v8::Boolean>::return_t \ imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value> val) { \ v8::Isolate *isolate = v8::Isolate::GetCurrent(); \ v8::EscapableHandleScope scope(isolate); \ return scope.Escape(val->ToBoolean(isolate)); \ } #endif
#undef X
#define X(TYPE, NAME) \
imp::ToFactory<TYPE>::return_t \ imp::ToFactory<TYPE>::convert(v8::Local<v8::Value> val) { \ v8::Isolate *isolate = v8::Isolate::GetCurrent(); \ v8::HandleScope scope(isolate); \ return val->NAME ## Value(isolate->GetCurrentContext()); \ }
X(double, Number) X(int64_t, Integer) X(uint32_t, Uint32) X(int32_t, Int32) // V8 <= 7.0
#if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
X(bool, Boolean) #else
imp::ToFactory<bool>::return_t \ imp::ToFactory<bool>::convert(v8::Local<v8::Value> val) { \ v8::Isolate *isolate = v8::Isolate::GetCurrent(); \ v8::HandleScope scope(isolate); \ return Just<bool>(val->BooleanValue(isolate)); \ } #endif
#undef X
#endif // NAN_CONVERTERS_43_INL_H_
|