From 53d3352b717eac489b396aaf61218a7c30df95d5 Mon Sep 17 00:00:00 2001 From: MockMockBlack Date: Sat, 2 Aug 2025 20:48:41 +0800 Subject: [PATCH] [Interop] napi_xref_unwrap bugFix Issue: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/ICPU5C Change-Id: I17b6b6aa7e336e09f26ca61604a657bd78251b6d Signed-off-by: MockMockBlack --- native_engine/native_node_hybrid_api.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/native_engine/native_node_hybrid_api.cpp b/native_engine/native_node_hybrid_api.cpp index 6ff464f1a..4bed014ce 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); -- Gitee