@@ -97,6 +97,15 @@ static napi_value External(napi_env env, napi_callback_info info) {
9797 return output_array ;
9898}
9999
100+
101+ static napi_value NullArrayBuffer (napi_env env , napi_callback_info info ) {
102+ static void * data = NULL ;
103+ napi_value arraybuffer ;
104+ NAPI_CALL (env ,
105+ napi_create_external_arraybuffer (env , data , 0 , NULL , NULL , & arraybuffer ));
106+ return arraybuffer ;
107+ }
108+
100109static napi_value CreateTypedArray (napi_env env , napi_callback_info info ) {
101110 size_t argc = 4 ;
102111 napi_value args [4 ];
@@ -183,13 +192,36 @@ static napi_value Detach(napi_env env, napi_callback_info info) {
183192 return NULL ;
184193}
185194
195+ static napi_value IsDetached (napi_env env , napi_callback_info info ) {
196+ size_t argc = 1 ;
197+ napi_value args [1 ];
198+ NAPI_CALL (env , napi_get_cb_info (env , info , & argc , args , NULL , NULL ));
199+ NAPI_ASSERT (env , argc == 1 , "Wrong number of arguments." );
200+
201+ napi_value array_buffer = args [0 ];
202+ bool is_arraybuffer ;
203+ NAPI_CALL (env , napi_is_arraybuffer (env , array_buffer , & is_arraybuffer ));
204+ NAPI_ASSERT (env , is_arraybuffer ,
205+ "Wrong type of arguments. Expects an array buffer as first argument." );
206+
207+ bool is_detached ;
208+ NAPI_CALL (env , napi_is_detached_arraybuffer (env , array_buffer , & is_detached ));
209+
210+ napi_value result ;
211+ NAPI_CALL (env , napi_get_boolean (env , is_detached , & result ));
212+
213+ return result ;
214+ }
215+
186216EXTERN_C_START
187217napi_value Init (napi_env env , napi_value exports ) {
188218 napi_property_descriptor descriptors [] = {
189219 DECLARE_NAPI_PROPERTY ("Multiply" , Multiply ),
190220 DECLARE_NAPI_PROPERTY ("External" , External ),
221+ DECLARE_NAPI_PROPERTY ("NullArrayBuffer" , NullArrayBuffer ),
191222 DECLARE_NAPI_PROPERTY ("CreateTypedArray" , CreateTypedArray ),
192223 DECLARE_NAPI_PROPERTY ("Detach" , Detach ),
224+ DECLARE_NAPI_PROPERTY ("IsDetached" , IsDetached ),
193225 };
194226
195227 NAPI_CALL (env , napi_define_properties (
0 commit comments