node-api: add napi_create_external_sharedarraybuffer · nodejs/node@01090f2
@@ -58,6 +58,30 @@ static napi_value newExternalBuffer(napi_env env, napi_callback_info info) {
5858return theBuffer;
5959}
606061+static char externalSharedArrayBufferData[1];
62+63+static void freeExternalSharedArrayBuffer(void* data, void* hint) {
64+ (void)hint;
65+NODE_API_BASIC_ASSERT_RETURN_VOID(
66+data == (void*)externalSharedArrayBufferData,
67+"SharedArrayBuffer points to wrong data");
68+deleterCallCount++;
69+}
70+71+static napi_value newExternalSharedArrayBuffer(napi_env env,
72+napi_callback_info info) {
73+napi_value sab;
74+NODE_API_CALL(
75+env,
76+node_api_create_external_sharedarraybuffer(env,
77+externalSharedArrayBufferData,
78+1,
79+freeExternalSharedArrayBuffer,
80+NULL,
81+&sab));
82+return sab;
83+}
84+6185static napi_value getDeleterCallCount(napi_env env, napi_callback_info info) {
6286napi_value callCount;
6387NODE_API_CALL(env, napi_create_int32(env, deleterCallCount, &callCount));
@@ -171,6 +195,8 @@ static napi_value Init(napi_env env, napi_value exports) {
171195napi_property_descriptor methods[] = {
172196DECLARE_NODE_API_PROPERTY("newBuffer", newBuffer),
173197DECLARE_NODE_API_PROPERTY("newExternalBuffer", newExternalBuffer),
198+DECLARE_NODE_API_PROPERTY("newExternalSharedArrayBuffer",
199+newExternalSharedArrayBuffer),
174200DECLARE_NODE_API_PROPERTY("getDeleterCallCount", getDeleterCallCount),
175201DECLARE_NODE_API_PROPERTY("copyBuffer", copyBuffer),
176202DECLARE_NODE_API_PROPERTY("bufferHasInstance", bufferHasInstance),