◐ Shell
clean mode source ↗

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) {

5858

return 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+6185

static napi_value getDeleterCallCount(napi_env env, napi_callback_info info) {

6286

napi_value callCount;

6387

NODE_API_CALL(env, napi_create_int32(env, deleterCallCount, &callCount));

@@ -171,6 +195,8 @@ static napi_value Init(napi_env env, napi_value exports) {

171195

napi_property_descriptor methods[] = {

172196

DECLARE_NODE_API_PROPERTY("newBuffer", newBuffer),

173197

DECLARE_NODE_API_PROPERTY("newExternalBuffer", newExternalBuffer),

198+

DECLARE_NODE_API_PROPERTY("newExternalSharedArrayBuffer",

199+

newExternalSharedArrayBuffer),

174200

DECLARE_NODE_API_PROPERTY("getDeleterCallCount", getDeleterCallCount),

175201

DECLARE_NODE_API_PROPERTY("copyBuffer", copyBuffer),

176202

DECLARE_NODE_API_PROPERTY("bufferHasInstance", bufferHasInstance),