diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bun.js/bindings/napi.cpp | 1 | ||||
-rw-r--r-- | src/napi/napi.zig | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index bebdd5134..7b8963b2c 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -812,7 +812,6 @@ extern "C" napi_status napi_create_reference(napi_env env, napi_value value, if (NapiPrototype* object = jsDynamicCast<NapiPrototype*>(val)) { object->napiRef = ref; - return napi_invalid_arg; } *result = toNapi(ref); diff --git a/src/napi/napi.zig b/src/napi/napi.zig index 79ead95f5..103f8dccd 100644 --- a/src/napi/napi.zig +++ b/src/napi/napi.zig @@ -1372,6 +1372,9 @@ pub export fn napi_create_threadsafe_function( ) napi_status { // TODO: don't do this // just have a GC hook for this... + if (func.isEmptyOrUndefinedOrNull() or !func.isCallable(env.vm())) { + return napi_status.function_expected; + } JSC.C.JSValueProtect(env.ref(), func.asObjectRef()); var function = bun.default_allocator.create(ThreadSafeFunction) catch return .generic_failure; function.* = .{ |