git.schokokeks.org
Repositories
Help
Report an Issue
fs-words.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
6e9c872
Branches
Tags
develop-client_server
master
typescript
fs-words.git
server
lib
node_modules
node-addon-api
benchmark
property_descriptor.cc
[add] server:lib:node_modules
Christian Fraß
commited
6e9c872
at 2021-03-08 23:52:07
property_descriptor.cc
Blame
History
Raw
#include "napi.h" static napi_value Getter_Core(napi_env env, napi_callback_info info) { (void) info; napi_value result; napi_status status = napi_create_uint32(env, 42, &result); NAPI_THROW_IF_FAILED(env, status, nullptr); return result; } static napi_value Setter_Core(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value argv; napi_status status = napi_get_cb_info(env, info, &argc, &argv, nullptr, nullptr); NAPI_THROW_IF_FAILED(env, status, nullptr); (void) argv; return nullptr; } static Napi::Value Getter(const Napi::CallbackInfo& info) { return Napi::Number::New(info.Env(), 42); } static void Setter(const Napi::CallbackInfo& info) { (void) info[0]; } #if NAPI_VERSION > 5 class PropDescBenchmark : public Napi::Addon<PropDescBenchmark> { public: PropDescBenchmark(Napi::Env, Napi::Object exports) { DefineAddon(exports, { InstanceAccessor("addon", &PropDescBenchmark::Getter, &PropDescBenchmark::Setter, napi_enumerable), InstanceAccessor<&PropDescBenchmark::Getter, &PropDescBenchmark::Setter>("addon_templated", napi_enumerable), }); } private: Napi::Value Getter(const Napi::CallbackInfo& info) { return Napi::Number::New(info.Env(), 42); } void Setter(const Napi::CallbackInfo& info, const Napi::Value& val) { (void) info[0]; (void) val; } }; #endif // NAPI_VERSION > 5 static Napi::Object Init(Napi::Env env, Napi::Object exports) { napi_status status; napi_property_descriptor core_prop = { "core", nullptr, nullptr, Getter_Core, Setter_Core, nullptr, napi_enumerable, nullptr }; status = napi_define_properties(env, exports, 1, &core_prop); NAPI_THROW_IF_FAILED(env, status, Napi::Object()); exports.DefineProperty( Napi::PropertyDescriptor::Accessor(env, exports, "cplusplus", Getter, Setter, napi_enumerable)); exports.DefineProperty( Napi::PropertyDescriptor::Accessor<Getter, Setter>("templated", napi_enumerable)); #if NAPI_VERSION > 5 PropDescBenchmark::Init(env, exports); #endif // NAPI_VERSION > 5 return exports; } NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)