static napi_value DeleteReference(napi_env env, napi_callback_info info) { NAPI_ASSERT(env, test_reference != NULL, "A reference must have been created."); NAPI_CALL(env, napi_delete_reference(env, test_reference)); test_reference = NULL; return NULL; }
static void finalizer_only_callback(napi_env env, void* data, void* hint) { napi_ref js_cb_ref = data; napi_value js_cb, undefined; NAPI_CALL_RETURN_VOID(env, napi_get_reference_value(env, js_cb_ref, &js_cb)); NAPI_CALL_RETURN_VOID(env, napi_get_undefined(env, &undefined)); NAPI_CALL_RETURN_VOID(env, napi_call_function(env, undefined, js_cb, 0, NULL, NULL)); NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, js_cb_ref)); }
static void finalize(napi_env env, void* finalize_data, void* finalize_hint) { size_t* f_data = (size_t*)finalize_data; size_t* f_hint = (size_t*)finalize_hint; if (*f_hint != native_hint) napi_fatal_error(__FILE__, NAPI_AUTO_LENGTH, "finalize hint not aligned.", NAPI_AUTO_LENGTH); *f_data += 1; napi_delete_reference(env, weak_ref); }
static void deref_item(napi_env env, void* data, void* hint) { (void) hint; NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, (napi_ref)data)); }