diff options
Diffstat (limited to 'src/bun.js/bindings/napi.cpp')
-rw-r--r-- | src/bun.js/bindings/napi.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index 009a11f61..b4bef19f9 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -751,6 +751,17 @@ extern "C" napi_status napi_create_reference(napi_env env, napi_value value, return napi_ok; } +extern "C" void napi_set_ref(NapiRef* ref, JSC__JSValue val_) +{ + + JSC::JSValue val = JSC::JSValue::decode(val_); + if (val) { + ref->strongRef.set(ref->globalObject->vm(), val); + } else { + ref->strongRef.clear(); + } +} + extern "C" napi_status napi_add_finalizer(napi_env env, napi_value js_object, void* native_object, napi_finalize finalize_cb, @@ -794,6 +805,11 @@ extern "C" napi_status napi_get_reference_value(napi_env env, napi_ref ref, return napi_ok; } +extern "C" JSC__JSValue napi_get_reference_value_internal(NapiRef* napiRef) +{ + return JSC::JSValue::encode(napiRef->value()); +} + extern "C" napi_status napi_reference_ref(napi_env env, napi_ref ref, uint32_t* result) { |