@@ -20,6 +20,16 @@ static napi_value testStrictEquals(napi_env env, napi_callback_info info) {
2020 return result ;
2121}
2222
23+ static napi_value testSetPrototype (napi_env env , napi_callback_info info ) {
24+ size_t argc = 2 ;
25+ napi_value args [2 ];
26+ NODE_API_CALL (env , napi_get_cb_info (env , info , & argc , args , NULL , NULL ));
27+
28+ NODE_API_CALL (env , node_api_set_prototype (env , args [0 ], args [1 ]));
29+
30+ return NULL ;
31+ }
32+
2333static napi_value testGetPrototype (napi_env env , napi_callback_info info ) {
2434 size_t argc = 1 ;
2535 napi_value args [1 ];
@@ -133,7 +143,7 @@ static napi_value testNapiTypeof(napi_env env, napi_callback_info info) {
133143}
134144
135145static bool deref_item_called = false;
136- static void deref_item (napi_env env , void * data , void * hint ) {
146+ static void deref_item (node_api_nogc_env env , void * data , void * hint ) {
137147 (void ) hint ;
138148
139149 NODE_API_ASSERT_RETURN_VOID (env , data == & deref_item_called ,
@@ -152,7 +162,7 @@ static napi_value deref_item_was_called(napi_env env, napi_callback_info info) {
152162
153163static napi_value wrap_first_arg (napi_env env ,
154164 napi_callback_info info ,
155- napi_finalize finalizer ,
165+ node_api_basic_finalize finalizer ,
156166 void * data ) {
157167 size_t argc = 1 ;
158168 napi_value to_wrap ;
@@ -191,7 +201,7 @@ static napi_value remove_wrap(napi_env env, napi_callback_info info) {
191201}
192202
193203static bool finalize_called = false;
194- static void test_finalize (napi_env env , void * data , void * hint ) {
204+ static void test_finalize (node_api_nogc_env env , void * data , void * hint ) {
195205 finalize_called = true;
196206}
197207
@@ -238,6 +248,15 @@ static void finalizer_only_callback(napi_env env, void* data, void* hint) {
238248 NODE_API_CALL_RETURN_VOID (env , napi_delete_reference (env , js_cb_ref ));
239249}
240250
251+ static void schedule_finalizer_only_callback (node_api_nogc_env env ,
252+ void * data ,
253+ void * hint ) {
254+ NODE_API_CALL_RETURN_VOID (
255+ (napi_env )env ,
256+ node_api_post_finalizer (
257+ (napi_env )env , finalizer_only_callback , data , NULL ));
258+ }
259+
241260static napi_value add_finalizer_only (napi_env env , napi_callback_info info ) {
242261 size_t argc = 2 ;
243262 napi_value argv [2 ];
@@ -249,7 +268,7 @@ static napi_value add_finalizer_only(napi_env env, napi_callback_info info) {
249268 napi_add_finalizer (env ,
250269 argv [0 ],
251270 js_cb_ref ,
252- finalizer_only_callback ,
271+ schedule_finalizer_only_callback ,
253272 NULL ,
254273 NULL ));
255274 return NULL ;
@@ -264,7 +283,9 @@ static const char* env_cleanup_finalizer_messages[] = {
264283};
265284#endif
266285
267- static void cleanup_env_finalizer (napi_env env , void * data , void * hint ) {
286+ static void cleanup_env_finalizer (node_api_nogc_env env ,
287+ void * data ,
288+ void * hint ) {
268289 (void ) env ;
269290 (void ) hint ;
270291#if !defined(__wasm__ ) || (defined(__EMSCRIPTEN__ ) || defined(__wasi__ ))
@@ -304,25 +325,27 @@ static napi_value getDynamicallyInitialized(napi_env env) {
304325EXTERN_C_START
305326napi_value Init (napi_env env , napi_value exports ) {
306327 napi_property_descriptor descriptors [] = {
307- DECLARE_NODE_API_PROPERTY ("testStrictEquals" , testStrictEquals ),
308- DECLARE_NODE_API_PROPERTY ("testGetPrototype" , testGetPrototype ),
309- DECLARE_NODE_API_PROPERTY ("testGetVersion" , testGetVersion ),
310- DECLARE_NODE_API_PROPERTY ("testNapiRun" , testNapiRun ),
311- DECLARE_NODE_API_PROPERTY ("doInstanceOf" , doInstanceOf ),
312- DECLARE_NODE_API_PROPERTY ("getUndefined" , getUndefined ),
313- DECLARE_NODE_API_PROPERTY ("getNull" , getNull ),
314- DECLARE_NODE_API_PROPERTY ("createNapiError" , createNapiError ),
315- DECLARE_NODE_API_PROPERTY ("testNapiErrorCleanup" , testNapiErrorCleanup ),
316- DECLARE_NODE_API_PROPERTY ("testNapiTypeof" , testNapiTypeof ),
317- DECLARE_NODE_API_PROPERTY ("wrap" , wrap ),
318- DECLARE_NODE_API_PROPERTY ("envCleanupWrap" , env_cleanup_wrap ),
319- DECLARE_NODE_API_PROPERTY ("unwrap" , unwrap ),
320- DECLARE_NODE_API_PROPERTY ("removeWrap" , remove_wrap ),
321- DECLARE_NODE_API_PROPERTY ("addFinalizerOnly" , add_finalizer_only ),
322- DECLARE_NODE_API_PROPERTY ("testFinalizeWrap" , test_finalize_wrap ),
323- DECLARE_NODE_API_PROPERTY ("finalizeWasCalled" , finalize_was_called ),
324- DECLARE_NODE_API_PROPERTY ("derefItemWasCalled" , deref_item_was_called ),
325- DECLARE_NODE_API_PROPERTY ("testAdjustExternalMemory" , testAdjustExternalMemory ),
328+ DECLARE_NODE_API_PROPERTY ("testStrictEquals" , testStrictEquals ),
329+ DECLARE_NODE_API_PROPERTY ("testSetPrototype" , testSetPrototype ),
330+ DECLARE_NODE_API_PROPERTY ("testGetPrototype" , testGetPrototype ),
331+ DECLARE_NODE_API_PROPERTY ("testGetVersion" , testGetVersion ),
332+ DECLARE_NODE_API_PROPERTY ("testNapiRun" , testNapiRun ),
333+ DECLARE_NODE_API_PROPERTY ("doInstanceOf" , doInstanceOf ),
334+ DECLARE_NODE_API_PROPERTY ("getUndefined" , getUndefined ),
335+ DECLARE_NODE_API_PROPERTY ("getNull" , getNull ),
336+ DECLARE_NODE_API_PROPERTY ("createNapiError" , createNapiError ),
337+ DECLARE_NODE_API_PROPERTY ("testNapiErrorCleanup" , testNapiErrorCleanup ),
338+ DECLARE_NODE_API_PROPERTY ("testNapiTypeof" , testNapiTypeof ),
339+ DECLARE_NODE_API_PROPERTY ("wrap" , wrap ),
340+ DECLARE_NODE_API_PROPERTY ("envCleanupWrap" , env_cleanup_wrap ),
341+ DECLARE_NODE_API_PROPERTY ("unwrap" , unwrap ),
342+ DECLARE_NODE_API_PROPERTY ("removeWrap" , remove_wrap ),
343+ DECLARE_NODE_API_PROPERTY ("addFinalizerOnly" , add_finalizer_only ),
344+ DECLARE_NODE_API_PROPERTY ("testFinalizeWrap" , test_finalize_wrap ),
345+ DECLARE_NODE_API_PROPERTY ("finalizeWasCalled" , finalize_was_called ),
346+ DECLARE_NODE_API_PROPERTY ("derefItemWasCalled" , deref_item_was_called ),
347+ DECLARE_NODE_API_PROPERTY ("testAdjustExternalMemory" ,
348+ testAdjustExternalMemory ),
326349#ifdef __wasm__
327350 {
328351 .utf8name = "dynamicallyInitialized" ,
0 commit comments