From 424717a9737321a3f37f7596f62067d72cd97e25 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 3 Jul 2023 13:47:37 -0700 Subject: Fixes #3317 --- src/bun.js/bindings/napi.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/bun.js/bindings/napi.cpp') diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index bb62cb2a0..5d7204285 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -1539,8 +1539,10 @@ extern "C" napi_status napi_typeof(napi_env env, napi_value val, JSC::JSValue value = toJS(val); - if (UNLIKELY(value.isEmpty())) { - return napi_invalid_arg; + if (value.isEmpty()) { + // This can happen + *result = napi_undefined; + return napi_ok; } if (value.isCell()) { @@ -1579,17 +1581,18 @@ extern "C" napi_status napi_typeof(napi_env env, napi_value val, *result = napi_object; return napi_ok; - default: - if (cell->isObject()) { - *result = napi_object; + default: { + if (cell->isCallable() || cell->isConstructor()) { + *result = napi_function; return napi_ok; } - if (cell->isCallable() || cell->isConstructor()) { - *result = napi_function; + if (cell->isObject()) { + *result = napi_object; return napi_ok; } } + } } if (value.isNumber()) { -- cgit v1.2.3