mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
7a216d5fd6
We define a new type called `node_api_nogc_env` as the `const` version of `napi_env` and `node_api_nogc_finalize` as a variant of `napi_finalize` that accepts a `node_api_nogc_env` as its first argument. We then modify those APIs which do not affect GC state as accepting a `node_api_nogc_env`. APIs accepting finalizer callbacks are modified to accept `node_api_nogc_finalize` callbacks. Thus, the only way to attach a `napi_finalize` callback, wherein Node-APIs affecting GC state may be called is to call `node_api_post_finalizer` from a `node_api_nogc_finalize` callback. In keeping with the process of introducing new Node-APIs, this feature is guarded by `NAPI_EXPERIMENTAL`. Since this feature modifies APIs already marked as stable, it is additionally guared by `NODE_API_EXPERIMENTAL_NOGC_ENV`, so as to provide a further buffer to adoption. Nevertheless, both guards must be removed upon releasing a new version of Node-API. PR-URL: https://github.com/nodejs/node/pull/50060 Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Vladimir Morozov <vmorozov@microsoft.com> Reviewed-By: Michael Dawson <midawson@redhat.com> |
||
---|---|---|
.. | ||
1_hello_world | ||
test_async | ||
test_async_cleanup_hook | ||
test_async_context | ||
test_buffer | ||
test_callback_scope | ||
test_cleanup_hook | ||
test_env_teardown_gc | ||
test_exception | ||
test_fatal | ||
test_fatal_exception | ||
test_general | ||
test_init_order | ||
test_instance_data | ||
test_make_callback | ||
test_make_callback_recurse | ||
test_null_init | ||
test_policy | ||
test_reference_by_node_api_version | ||
test_threadsafe_function | ||
test_uv_loop | ||
test_uv_threadpool_size | ||
test_worker_buffer_callback | ||
test_worker_terminate | ||
test_worker_terminate_finalization | ||
.gitignore | ||
node-api.status | ||
testcfg.py |