1 /*********************************************************************
2 * NAN - Native Abstractions for Node.js
4 * Copyright (c) 2018 NAN contributors
6 * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
7 ********************************************************************/
9 #ifndef NAN_CONVERTERS_43_INL_H_
10 #define NAN_CONVERTERS_43_INL_H_
13 imp::ToFactory<v8::TYPE>::return_t \
14 imp::ToFactory<v8::TYPE>::convert(v8::Local<v8::Value> val) { \
15 v8::Isolate *isolate = v8::Isolate::GetCurrent(); \
16 v8::EscapableHandleScope scope(isolate); \
17 return scope.Escape( \
18 val->To ## TYPE(isolate->GetCurrentContext()) \
19 .FromMaybe(v8::Local<v8::TYPE>())); \
29 #if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
32 imp::ToFactory<v8::Boolean>::return_t \
33 imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value> val) { \
34 v8::Isolate *isolate = v8::Isolate::GetCurrent(); \
35 v8::EscapableHandleScope scope(isolate); \
36 return scope.Escape(val->ToBoolean(isolate)); \
42 #define X(TYPE, NAME) \
43 imp::ToFactory<TYPE>::return_t \
44 imp::ToFactory<TYPE>::convert(v8::Local<v8::Value> val) { \
45 v8::Isolate *isolate = v8::Isolate::GetCurrent(); \
46 v8::HandleScope scope(isolate); \
47 return val->NAME ## Value(isolate->GetCurrentContext()); \
55 #if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
58 imp::ToFactory<bool>::return_t \
59 imp::ToFactory<bool>::convert(v8::Local<v8::Value> val) { \
60 v8::Isolate *isolate = v8::Isolate::GetCurrent(); \
61 v8::HandleScope scope(isolate); \
62 return Just<bool>(val->BooleanValue(isolate)); \
68 #endif // NAN_CONVERTERS_43_INL_H_