From 9e08c4207af00314c751a738667c21ad3279c152 Mon Sep 17 00:00:00 2001 From: zhao1d Date: Wed, 23 Jul 2025 14:46:46 +0800 Subject: [PATCH] napi adapt 1.2runtime merge master Signed-off-by: zhao1d Change-Id: Icc10c586e2f3dee66518bde26e576ed04999e65b --- interfaces/inner_api/napi/native_node_api.h | 2 ++ native_engine/native_node_api.cpp | 23 +++++++++++++++++++++ test/unittest/test_napi.cpp | 15 ++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/interfaces/inner_api/napi/native_node_api.h b/interfaces/inner_api/napi/native_node_api.h index 18fd603f3..69ad81bcc 100644 --- a/interfaces/inner_api/napi/native_node_api.h +++ b/interfaces/inner_api/napi/native_node_api.h @@ -234,6 +234,8 @@ NAPI_EXTERN napi_status napi_wrap_with_xref(napi_env env, void* native_object, napi_finalize finalize_cb, napi_ref* result); +NAPI_EXTERN napi_status napi_get_ets_implements(napi_env env, napi_value value, napi_value* result); +NAPI_EXTERN napi_status napi_setup_hybrid_environment(napi_env env); #endif // PANDA_JS_ETS_HYBRID_MODE NAPI_EXTERN napi_status napi_is_alive_object(napi_env env, napi_ref ref, bool* result); NAPI_EXTERN napi_status napi_is_contain_object(napi_env env, napi_ref ref, bool* result); diff --git a/native_engine/native_node_api.cpp b/native_engine/native_node_api.cpp index 6f865f898..b46c903fb 100644 --- a/native_engine/native_node_api.cpp +++ b/native_engine/native_node_api.cpp @@ -643,3 +643,26 @@ NAPI_EXTERN napi_status napi_set_module_validate_callback(napi_module_validate_c } return napi_generic_failure; } + +NAPI_EXTERN napi_status napi_get_ets_implements(napi_env env, napi_value value, napi_value* result) +{ + NAPI_PREAMBLE(env); + CHECK_ARG(env, value); + CHECK_ARG(env, result); + auto nativeValue = LocalValueFromJsValue(value); + auto engine = reinterpret_cast(env); + auto vm = engine->GetEcmaVm(); + Local implementsValue = panda::JSNApi::GetImplements(vm, nativeValue); + *result = JsValueFromLocalValue(implementsValue); + return GET_RETURN_STATUS(env); +} + +NAPI_EXTERN napi_status napi_setup_hybrid_environment(napi_env env) +{ + NAPI_PREAMBLE(env); + + auto engine = reinterpret_cast(env); + auto vm = engine->GetEcmaVm(); + panda::JSNApi::InitHybridVMEnv(vm); + return GET_RETURN_STATUS(env); +} diff --git a/test/unittest/test_napi.cpp b/test/unittest/test_napi.cpp index fc40f24b8..d0002cfa9 100644 --- a/test/unittest/test_napi.cpp +++ b/test/unittest/test_napi.cpp @@ -14595,4 +14595,19 @@ HWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQueueTest009, testing::ext::TestSi auto res = napi_queue_async_work_with_queue(env, work, napi_qos_default, reinterpret_cast(&TASKID)); ASSERT_EQ(res, napi_ok); +} + +/** + * @tc.name: NapiGetEtsImplementsTest + * @tc.desc: Test interface of napi_get_ets_implements + * @tc.type: FUNC + */ +HWTEST_F(NapiBasicTest, NapiGetEtsImplementsTest, testing::ext::TestSize.Level1) +{ + napi_env env = reinterpret_cast(engine_); + napi_value value = nullptr; + napi_value result = nullptr; + + napi_status status = napi_get_ets_implements(env, value, &result); + ASSERT_EQ(status, napi_invalid_arg); } \ No newline at end of file -- Gitee