| /********************************************************************* |
| * 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_ |