From 607198bbf8d3c8e318716e964b6f43d32a502c43 Mon Sep 17 00:00:00 2001 From: Gabriel Schulhof Date: Sun, 7 Mar 2021 08:52:09 -0800 Subject: [PATCH] node-api: define version 8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mark as stable the APIs that define Node-API version 8. PR-URL: https://github.com/nodejs/node/pull/37652 Reviewed-By: Gerhard Stöbich Reviewed-By: Michael Dawson Reviewed-By: Chengzhong Wu --- doc/api/n-api.md | 42 +++++++++++-------- src/js_native_api.h | 6 +-- src/js_native_api_types.h | 8 ++-- src/node_api.h | 4 +- src/node_api_types.h | 4 +- src/node_version.h | 2 +- test/js-native-api/test_general/test.js | 2 +- test/js-native-api/test_object/test_object.c | 1 - .../test_async_cleanup_hook/binding.c | 1 - 9 files changed, 37 insertions(+), 33 deletions(-) diff --git a/doc/api/n-api.md b/doc/api/n-api.md index e73bf3a06f710c..2e6260d07602d1 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -686,7 +686,10 @@ For more details, review the [Object lifetime management][]. #### napi_type_tag A 128-bit value stored as two unsigned 64-bit integers. It serves as a UUID @@ -1694,15 +1697,16 @@ with `napi_add_env_cleanup_hook`, otherwise the process will abort. #### napi_add_async_cleanup_hook -> Stability: 1 - Experimental - ```c NAPI_EXTERN napi_status napi_add_async_cleanup_hook( napi_env env, @@ -1740,8 +1744,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); @@ -4196,11 +4198,12 @@ specification). #### napi_object_freeze -> Stability: 1 - Experimental - ```c napi_status napi_object_freeze(napi_env env, napi_value object); @@ -4221,11 +4224,12 @@ ECMA-262 specification. #### napi_object_seal -> Stability: 1 - Experimental - ```c napi_status napi_object_seal(napi_env env, napi_value object); @@ -4884,11 +4888,12 @@ JavaScript object becomes garbage-collected. ### napi_type_tag_object -> Stability: 1 - Experimental - ```c napi_status napi_type_tag_object(napi_env env, napi_value js_object, @@ -4911,11 +4916,12 @@ If the object already has an associated type tag, this API will return ### napi_check_object_type_tag -> 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 786988e296b8b2..7c2c84398cc5fe 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,7 +261,7 @@ 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_EXPERIMENTAL +#endif // NAPI_VERSION >= 8 EXTERN_C_END 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 3bdccd31eb632e..50cfc20862e745 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 70a85e03c725dd..9a90b5689e074d 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"