diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 4a6ebe768f14d0..3fb80e91987071 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -689,6 +689,7 @@ For more details, review the [Object lifetime management][]. added: - v14.8.0 - v12.19.0 +napiVersion: 8 --> A 128-bit value stored as two unsigned 64-bit integers. It serves as a UUID @@ -1703,6 +1704,7 @@ with `napi_add_env_cleanup_hook`, otherwise the process will abort. added: - v14.8.0 - v12.19.0 +napiVersion: 8 changes: - version: - v14.10.0 @@ -1711,8 +1713,6 @@ changes: description: Changed signature of the `hook` callback. --> -> Stability: 1 - Experimental - ```c NAPI_EXTERN napi_status napi_add_async_cleanup_hook( napi_env env, @@ -1754,8 +1754,6 @@ changes: description: Removed `env` parameter. --> -> Stability: 1 - Experimental - ```c NAPI_EXTERN napi_status napi_remove_async_cleanup_hook( napi_async_cleanup_hook_handle remove_handle); @@ -4210,11 +4208,12 @@ specification). #### napi_object_freeze -> Stability: 1 - Experimental - ```c napi_status napi_object_freeze(napi_env env, napi_value object); @@ -4235,11 +4234,12 @@ ECMA-262 specification. #### napi_object_seal -> Stability: 1 - Experimental - ```c napi_status napi_object_seal(napi_env env, napi_value object); @@ -4901,10 +4901,9 @@ JavaScript object becomes garbage-collected. added: - v14.8.0 - v12.19.0 +napiVersion: 8 --> -> Stability: 1 - Experimental - ```c napi_status napi_type_tag_object(napi_env env, napi_value js_object, @@ -4930,10 +4929,9 @@ If the object already has an associated type tag, this API will return added: - v14.8.0 - v12.19.0 +napiVersion: 8 --> -> Stability: 1 - Experimental - ```c napi_status napi_check_object_type_tag(napi_env env, napi_value js_object, diff --git a/src/js_native_api.h b/src/js_native_api.h index 5daa20f9040096..e804d1d45d2365 100644 --- a/src/js_native_api.h +++ b/src/js_native_api.h @@ -17,7 +17,7 @@ // functions available in a new version of N-API that is not yet ported in all // LTS versions, they can set NAPI_VERSION knowing that they have specifically // depended on that version. -#define NAPI_VERSION 7 +#define NAPI_VERSION 8 #endif #endif @@ -539,7 +539,7 @@ NAPI_EXTERN napi_status napi_is_detached_arraybuffer(napi_env env, bool* result); #endif // NAPI_VERSION >= 7 -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 8 // Type tagging NAPI_EXTERN napi_status napi_type_tag_object(napi_env env, napi_value value, @@ -554,7 +554,7 @@ NAPI_EXTERN napi_status napi_object_freeze(napi_env env, napi_value object); NAPI_EXTERN napi_status napi_object_seal(napi_env env, napi_value object); -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 8 EXTERN_C_END diff --git a/src/js_native_api_types.h b/src/js_native_api_types.h index 7011c80e671a15..6aba06629b3154 100644 --- a/src/js_native_api_types.h +++ b/src/js_native_api_types.h @@ -31,7 +31,7 @@ typedef enum { // from instance properties. Ignored by napi_define_properties. napi_static = 1 << 10, -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 8 // Default for class methods. napi_default_method = napi_writable | napi_configurable, @@ -39,7 +39,7 @@ typedef enum { napi_default_jsproperty = napi_writable | napi_enumerable | napi_configurable, -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 8 } napi_property_attributes; typedef enum { @@ -150,11 +150,11 @@ typedef enum { } napi_key_conversion; #endif // NAPI_VERSION >= 6 -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 8 typedef struct { uint64_t lower; uint64_t upper; } napi_type_tag; -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 8 #endif // SRC_JS_NATIVE_API_TYPES_H_ diff --git a/src/node_api.h b/src/node_api.h index e7be240cdccd38..1772c67c15afb2 100644 --- a/src/node_api.h +++ b/src/node_api.h @@ -250,7 +250,7 @@ napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); #endif // NAPI_VERSION >= 4 -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 8 NAPI_EXTERN napi_status napi_add_async_cleanup_hook( napi_env env, @@ -261,6 +261,10 @@ NAPI_EXTERN napi_status napi_add_async_cleanup_hook( NAPI_EXTERN napi_status napi_remove_async_cleanup_hook( napi_async_cleanup_hook_handle remove_handle); +#endif // NAPI_VERSION >= 8 + +#ifdef NAPI_EXPERIMENTAL + NAPI_EXTERN napi_status node_api_get_module_file_name(napi_env env, const char** result); diff --git a/src/node_api_types.h b/src/node_api_types.h index 0e400e9676df5b..58ffc61b3a5f51 100644 --- a/src/node_api_types.h +++ b/src/node_api_types.h @@ -41,10 +41,10 @@ typedef struct { const char* release; } napi_node_version; -#ifdef NAPI_EXPERIMENTAL +#if NAPI_VERSION >= 8 typedef struct napi_async_cleanup_hook_handle__* napi_async_cleanup_hook_handle; typedef void (*napi_async_cleanup_hook)(napi_async_cleanup_hook_handle handle, void* data); -#endif // NAPI_EXPERIMENTAL +#endif // NAPI_VERSION >= 8 #endif // SRC_NODE_API_TYPES_H_ diff --git a/src/node_version.h b/src/node_version.h index fe3fca848b1716..0fd99c6f4d9df4 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -93,6 +93,6 @@ // The NAPI_VERSION provided by this version of the runtime. This is the version // which the Node binary being built supports. -#define NAPI_VERSION 7 +#define NAPI_VERSION 8 #endif // SRC_NODE_VERSION_H_ diff --git a/test/js-native-api/test_general/test.js b/test/js-native-api/test_general/test.js index 4dbdc37c918c37..76527bc81c7cd8 100644 --- a/test/js-native-api/test_general/test.js +++ b/test/js-native-api/test_general/test.js @@ -33,7 +33,7 @@ assert.notStrictEqual(test_general.testGetPrototype(baseObject), test_general.testGetPrototype(extendedObject)); // Test version management functions -assert.strictEqual(test_general.testGetVersion(), 7); +assert.strictEqual(test_general.testGetVersion(), 8); [ 123, diff --git a/test/js-native-api/test_object/test_object.c b/test/js-native-api/test_object/test_object.c index 5661b52063db83..d897e8d0d041f6 100644 --- a/test/js-native-api/test_object/test_object.c +++ b/test/js-native-api/test_object/test_object.c @@ -1,4 +1,3 @@ -#define NAPI_EXPERIMENTAL #include #include "../common.h" #include diff --git a/test/node-api/test_async_cleanup_hook/binding.c b/test/node-api/test_async_cleanup_hook/binding.c index 7bbde56bb0ec88..4e88479574fb01 100644 --- a/test/node-api/test_async_cleanup_hook/binding.c +++ b/test/node-api/test_async_cleanup_hook/binding.c @@ -1,4 +1,3 @@ -#define NAPI_EXPERIMENTAL #include "node_api.h" #include "assert.h" #include "uv.h"