aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/napi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/napi.cpp')
-rw-r--r--src/bun.js/bindings/napi.cpp16
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)
{