installed pty
[VSoRC/.git] / node_modules / node-pty / node_modules / nan / nan_converters_43_inl.h
1 /*********************************************************************
2  * NAN - Native Abstractions for Node.js
3  *
4  * Copyright (c) 2018 NAN contributors
5  *
6  * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
7  ********************************************************************/
8
9 #ifndef NAN_CONVERTERS_43_INL_H_
10 #define NAN_CONVERTERS_43_INL_H_
11
12 #define X(TYPE)                                                                \
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>()));                                  \
20 }
21
22 X(Number)
23 X(String)
24 X(Object)
25 X(Integer)
26 X(Uint32)
27 X(Int32)
28 // V8 <= 7.0
29 #if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
30 X(Boolean)
31 #else
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));                                \
37 }
38 #endif
39
40 #undef X
41
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());                     \
48 }
49
50 X(double, Number)
51 X(int64_t, Integer)
52 X(uint32_t, Uint32)
53 X(int32_t, Int32)
54 // V8 <= 7.0
55 #if V8_MAJOR_VERSION < 7 || (V8_MAJOR_VERSION == 7 && V8_MINOR_VERSION == 0)
56 X(bool, Boolean)
57 #else
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));                               \
63 }
64 #endif
65
66 #undef X
67
68 #endif  // NAN_CONVERTERS_43_INL_H_