From c659b3b7d3a0e5e842e29bb85da4da0634e67df5 Mon Sep 17 00:00:00 2001 From: Kai Tamkun Date: Mon, 4 Nov 2024 15:59:24 -0800 Subject: [PATCH] Require key to be a string or symbol in napi_has_own_property --- src/bun.js/bindings/napi.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bun.js/bindings/napi.cpp b/src/bun.js/bindings/napi.cpp index c78082838d..0fd450aa99 100644 --- a/src/bun.js/bindings/napi.cpp +++ b/src/bun.js/bindings/napi.cpp @@ -763,7 +763,9 @@ extern "C" napi_status napi_has_own_property(napi_env env, napi_value object, auto* target = toJS(object).toObject(globalObject); NAPI_RETURN_IF_EXCEPTION(env); - auto keyProp = toJS(key); + JSValue keyProp = toJS(key); + NAPI_RETURN_EARLY_IF_FALSE(env, keyProp.isString() || keyProp.isSymbol(), napi_name_expected); + *result = target->hasOwnProperty(globalObject, JSC::PropertyName(keyProp.toPropertyKey(globalObject))); NAPI_RETURN_SUCCESS_UNLESS_EXCEPTION(env); }