diff --git a/interfaces/inner_api/napi/native_node_api.h b/interfaces/inner_api/napi/native_node_api.h index 7135711209808aac757fcd659e63275bf24aa562..50aad0fc46bf501bb518ed450c4600d59ae8739e 100644 --- a/interfaces/inner_api/napi/native_node_api.h +++ b/interfaces/inner_api/napi/native_node_api.h @@ -123,6 +123,7 @@ NAPI_EXTERN napi_status napi_is_big_int64_array(napi_env env, napi_value value, NAPI_EXTERN napi_status napi_is_big_uint64_array(napi_env env, napi_value value, bool* result); NAPI_EXTERN napi_status napi_is_shared_array_buffer(napi_env env, napi_value value, bool* result); NAPI_EXTERN napi_status napi_get_stack_trace(napi_env env, std::string& stack); +NAPI_EXTERN napi_status napi_get_hole(napi_env env, napi_value* result); NAPI_EXTERN napi_status napi_get_hybrid_stack_trace(napi_env env, std::string& stack); NAPI_EXTERN napi_status napi_get_own_property_descriptor(napi_env env, napi_value object, @@ -220,4 +221,5 @@ NAPI_EXTERN napi_status napi_get_ets_implements(napi_env env, napi_value value, #endif // PANDA_JS_ETS_HYBRID_MODE NAPI_EXTERN napi_status napi_register_appstate_callback(napi_env env, NapiAppStateCallback callback); + #endif /* FOUNDATION_ACE_NAPI_INTERFACES_KITS_NAPI_NATIVE_NODE_API_H */ diff --git a/native_engine/native_api.cpp b/native_engine/native_api.cpp index 0228afa0714ae40a94c2271a6bd6476a497931e4..184db6abfdc0960e1680923b9f47354c5f0db67a 100644 --- a/native_engine/native_api.cpp +++ b/native_engine/native_api.cpp @@ -148,6 +148,18 @@ NAPI_EXTERN napi_status napi_get_null(napi_env env, napi_value* result) return napi_clear_last_error(env); } +NAPI_EXTERN napi_status napi_get_hole(napi_env env, napi_value* result) +{ + CHECK_ENV(env); + CHECK_ARG(env, result); + + auto vm = reinterpret_cast(env)->GetEcmaVm(); + Local value = panda::JSValueRef::Hole(vm); + *result = JsValueFromLocalValue(value); + + return napi_clear_last_error(env); +} + NAPI_EXTERN napi_status napi_get_global(napi_env env, napi_value* result) { CHECK_ENV(env);