MCPcopy Create free account
hub / github.com/nodejs/node-addon-api / Test

Class Test

test/finalizer_order.cc:4–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2
3namespace {
4class Test : public Napi::ObjectWrap<Test> {
5 public:
6 Test(const Napi::CallbackInfo& info) : Napi::ObjectWrap<Test>(info) {
7 basicFinalizerCalled = false;
8 finalizerCalled = false;
9
10 if (info.Length() > 0) {
11 finalizeCb_ = Napi::Persistent(info[0].As<Napi::Function>());
12 }
13 }
14
15 static void Initialize(Napi::Env env, Napi::Object exports) {
16 exports.Set("Test",
17 DefineClass(env,
18 "Test",
19 {
20 StaticAccessor("isBasicFinalizerCalled",
21 &IsBasicFinalizerCalled,
22 nullptr,
23 napi_default),
24 StaticAccessor("isFinalizerCalled",
25 &IsFinalizerCalled,
26 nullptr,
27 napi_default),
28 }));
29 }
30
31 void Finalize(Napi::BasicEnv /*env*/) { basicFinalizerCalled = true; }
32
33 void Finalize(Napi::Env /*env*/) {
34 finalizerCalled = true;
35 if (!finalizeCb_.IsEmpty()) {
36 finalizeCb_.Call({});
37 }
38 }
39
40 static Napi::Value IsBasicFinalizerCalled(const Napi::CallbackInfo& info) {
41 return Napi::Boolean::New(info.Env(), basicFinalizerCalled);
42 }
43
44 static Napi::Value IsFinalizerCalled(const Napi::CallbackInfo& info) {
45 return Napi::Boolean::New(info.Env(), finalizerCalled);
46 }
47
48 private:
49 Napi::FunctionReference finalizeCb_;
50
51 static bool basicFinalizerCalled;
52 static bool finalizerCalled;
53};
54
55bool Test::basicFinalizerCalled = false;
56bool Test::finalizerCalled = false;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected