Initial commit
[yaffs-website] / node_modules / nan / nan_callbacks.h
1 /*********************************************************************
2  * NAN - Native Abstractions for Node.js
3  *
4  * Copyright (c) 2017 NAN contributors
5  *
6  * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
7  ********************************************************************/
8
9 #ifndef NAN_CALLBACKS_H_
10 #define NAN_CALLBACKS_H_
11
12 template<typename T> class FunctionCallbackInfo;
13 template<typename T> class PropertyCallbackInfo;
14 template<typename T> class Global;
15
16 typedef void(*FunctionCallback)(const FunctionCallbackInfo<v8::Value>&);
17 typedef void(*GetterCallback)
18     (v8::Local<v8::String>, const PropertyCallbackInfo<v8::Value>&);
19 typedef void(*SetterCallback)(
20     v8::Local<v8::String>,
21     v8::Local<v8::Value>,
22     const PropertyCallbackInfo<void>&);
23 typedef void(*PropertyGetterCallback)(
24     v8::Local<v8::String>,
25     const PropertyCallbackInfo<v8::Value>&);
26 typedef void(*PropertySetterCallback)(
27     v8::Local<v8::String>,
28     v8::Local<v8::Value>,
29     const PropertyCallbackInfo<v8::Value>&);
30 typedef void(*PropertyEnumeratorCallback)
31     (const PropertyCallbackInfo<v8::Array>&);
32 typedef void(*PropertyDeleterCallback)(
33     v8::Local<v8::String>,
34     const PropertyCallbackInfo<v8::Boolean>&);
35 typedef void(*PropertyQueryCallback)(
36     v8::Local<v8::String>,
37     const PropertyCallbackInfo<v8::Integer>&);
38 typedef void(*IndexGetterCallback)(
39     uint32_t,
40     const PropertyCallbackInfo<v8::Value>&);
41 typedef void(*IndexSetterCallback)(
42     uint32_t,
43     v8::Local<v8::Value>,
44     const PropertyCallbackInfo<v8::Value>&);
45 typedef void(*IndexEnumeratorCallback)
46     (const PropertyCallbackInfo<v8::Array>&);
47 typedef void(*IndexDeleterCallback)(
48     uint32_t,
49     const PropertyCallbackInfo<v8::Boolean>&);
50 typedef void(*IndexQueryCallback)(
51     uint32_t,
52     const PropertyCallbackInfo<v8::Integer>&);
53
54 namespace imp {
55 typedef v8::Local<v8::AccessorSignature> Sig;
56
57 static const int kDataIndex =                    0;
58
59 static const int kFunctionIndex =                1;
60 static const int kFunctionFieldCount =           2;
61
62 static const int kGetterIndex =                  1;
63 static const int kSetterIndex =                  2;
64 static const int kAccessorFieldCount =           3;
65
66 static const int kPropertyGetterIndex =          1;
67 static const int kPropertySetterIndex =          2;
68 static const int kPropertyEnumeratorIndex =      3;
69 static const int kPropertyDeleterIndex =         4;
70 static const int kPropertyQueryIndex =           5;
71 static const int kPropertyFieldCount =           6;
72
73 static const int kIndexPropertyGetterIndex =     1;
74 static const int kIndexPropertySetterIndex =     2;
75 static const int kIndexPropertyEnumeratorIndex = 3;
76 static const int kIndexPropertyDeleterIndex =    4;
77 static const int kIndexPropertyQueryIndex =      5;
78 static const int kIndexPropertyFieldCount =      6;
79
80 }  // end of namespace imp
81
82 #if NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
83 # include "nan_callbacks_12_inl.h"  // NOLINT(build/include)
84 #else
85 # include "nan_callbacks_pre_12_inl.h"  // NOLINT(build/include)
86 #endif
87
88 #endif  // NAN_CALLBACKS_H_