/********************************************************************* * NAN - Native Abstractions for Node.js * * Copyright (c) 2018 NAN contributors * * MIT License ********************************************************************/ #ifndef NAN_CALLBACKS_H_ #define NAN_CALLBACKS_H_ template class FunctionCallbackInfo; template class PropertyCallbackInfo; template class Global; typedef void(*FunctionCallback)(const FunctionCallbackInfo&); typedef void(*GetterCallback) (v8::Local, const PropertyCallbackInfo&); typedef void(*SetterCallback)( v8::Local, v8::Local, const PropertyCallbackInfo&); #if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \ (V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4)) typedef v8::Intercepted(*PropertyGetterCallback)( v8::Local, const PropertyCallbackInfo&); typedef v8::Intercepted(*PropertySetterCallback)( v8::Local, v8::Local, const PropertyCallbackInfo&); #else typedef void(*PropertyGetterCallback)( v8::Local, const PropertyCallbackInfo&); typedef void(*PropertySetterCallback)( v8::Local, v8::Local, const PropertyCallbackInfo&); #endif typedef void(*PropertyEnumeratorCallback) (const PropertyCallbackInfo&); #if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \ (V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4)) typedef v8::Intercepted(*PropertyDeleterCallback)( v8::Local, const PropertyCallbackInfo&); typedef v8::Intercepted(*PropertyQueryCallback)( v8::Local, const PropertyCallbackInfo&); typedef v8::Intercepted(*IndexGetterCallback)( uint32_t, const PropertyCallbackInfo&); typedef v8::Intercepted(*IndexSetterCallback)( uint32_t, v8::Local, const PropertyCallbackInfo&); typedef v8::Intercepted(*IndexEnumeratorCallback) (const PropertyCallbackInfo&); typedef v8::Intercepted(*IndexDeleterCallback)( uint32_t, const PropertyCallbackInfo&); typedef v8::Intercepted(*IndexQueryCallback)( uint32_t, const PropertyCallbackInfo&); #else typedef void(*PropertyDeleterCallback)( v8::Local, const PropertyCallbackInfo&); typedef void(*PropertyQueryCallback)( v8::Local, const PropertyCallbackInfo&); typedef void(*IndexGetterCallback)( uint32_t, const PropertyCallbackInfo&); typedef void(*IndexSetterCallback)( uint32_t, v8::Local, const PropertyCallbackInfo&); typedef void(*IndexEnumeratorCallback) (const PropertyCallbackInfo&); typedef void(*IndexDeleterCallback)( uint32_t, const PropertyCallbackInfo&); typedef void(*IndexQueryCallback)( uint32_t, const PropertyCallbackInfo&); #endif namespace imp { #if (NODE_MODULE_VERSION < NODE_16_0_MODULE_VERSION) typedef v8::Local Sig; #else typedef v8::Local Sig; #endif static const int kDataIndex = 0; static const int kFunctionIndex = 1; static const int kFunctionFieldCount = 2; static const int kGetterIndex = 1; static const int kSetterIndex = 2; static const int kAccessorFieldCount = 3; static const int kPropertyGetterIndex = 1; static const int kPropertySetterIndex = 2; static const int kPropertyEnumeratorIndex = 3; static const int kPropertyDeleterIndex = 4; static const int kPropertyQueryIndex = 5; static const int kPropertyFieldCount = 6; static const int kIndexPropertyGetterIndex = 1; static const int kIndexPropertySetterIndex = 2; static const int kIndexPropertyEnumeratorIndex = 3; static const int kIndexPropertyDeleterIndex = 4; static const int kIndexPropertyQueryIndex = 5; static const int kIndexPropertyFieldCount = 6; } // end of namespace imp #if NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION # include "nan_callbacks_12_inl.h" // NOLINT(build/include) #else # include "nan_callbacks_pre_12_inl.h" // NOLINT(build/include) #endif #endif // NAN_CALLBACKS_H_