예제 #1
0
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;
}
예제 #2
0
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));
}
예제 #3
0
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);
}
예제 #4
0
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));
}