diff --git a/native_engine/native_node_hybrid_api.cpp b/native_engine/native_node_hybrid_api.cpp index 6ff464f1a3a4270564f11e18ad34a87d16d65a2d..4bed014cede6364fcbe2632b834a1dcc45ddf4b2 100644 --- a/native_engine/native_node_hybrid_api.cpp +++ b/native_engine/native_node_hybrid_api.cpp @@ -144,7 +144,16 @@ NAPI_EXTERN napi_status napi_xref_unwrap(napi_env env, napi_value js_object, voi panda::JsiFastNativeScope fastNativeScope(vm); CHECK_AND_CONVERT_TO_OBJECT(env, vm, nativeValue, nativeObject); Local key = panda::StringRef::GetProxyNapiWrapperString(vm); - Local val = nativeObject->Get(vm, key); + + Local val = {}; + if (UNLIKELY(nativeValue->IsProxy(vm))) { + val = nativeObject->Get(vm, key); + } else { + panda::PropertyAttribute property; + nativeObject->GetOwnProperty(vm, key, property); + val = property.GetValue(vm); + } + *result = nullptr; if (val->IsObject(vm)) { Local ext(val);