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.cpp17
1 files changed, 10 insertions, 7 deletions
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()) {