diff --git a/interfaces/inner_api/napi/native_node_api.h b/interfaces/inner_api/napi/native_node_api.h index 18fd603f315e61130f9f7a6726c3eeafedf5e05c..69ad81bcc26193b73d913e7b1fc9e1b0de8d9ea4 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 6f865f898c0c11fa685726fce6d5f1db12c8e9d1..b46c903fb224f89195f13c9811ce554ba98b38f3 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 fc40f24b84d32254bbd2b9ed7ba8a9ac51eb0ce6..d0002cfa9e3a507db17da05ebb8835296f1b1e47 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