@@ -339,7 +339,8 @@ class ArrayBufferReference final : public Reference {
339339 explicit ArrayBufferReference (napi_env env,
340340 v8::Local<v8::ArrayBuffer> value,
341341 Args&&... args)
342- : Reference(env, value, std::forward<Args>(args)...) {}
342+ : Reference(env, value, std::forward<Args>(args)...),
343+ _env(env) {}
343344
344345 template <typename ... Args>
345346 static ArrayBufferReference* New (napi_env env,
@@ -349,18 +350,18 @@ class ArrayBufferReference final : public Reference {
349350 }
350351
351352 private:
352- inline void Finalize ( bool is_env_teardown) override {
353- if (is_env_teardown) {
354- v8::HandleScope handle_scope (_env-> isolate );
355- v8::Local<v8::Value> obj = Get ( );
356- CHECK (!obj. IsEmpty () );
357- CHECK (obj-> IsArrayBuffer ());
358- v8::Local<v8::ArrayBuffer> ab = obj. As <v8::ArrayBuffer>( );
359- if (ab-> IsDetachable ())
360- ab->Detach ();
361- }
362-
363- Reference::Finalize (is_env_teardown );
353+ napi_env _env;
354+
355+ inline void Finalize () override {
356+ v8::HandleScope handle_scope (_env-> isolate );
357+ v8::Local<v8::Value> obj = Get ( );
358+ CHECK (! obj. IsEmpty ());
359+ CHECK ( obj-> IsArrayBuffer () );
360+ v8::Local<v8::ArrayBuffer> ab = obj. As <v8::ArrayBuffer>();
361+ if ( ab->IsDetachable ())
362+ ab-> Detach ();
363+
364+ Reference::Finalize ();
364365 }
365366};
366367#endif
0 commit comments