@@ -37,6 +37,28 @@ napi_value Echo(napi_env env, napi_callback_info info) {
3737 return args [0 ];
3838}
3939
40+ napi_value HasNamedProperty (napi_env env , napi_callback_info info ) {
41+ size_t argc = 2 ;
42+ napi_value args [2 ];
43+ NAPI_CALL (env , napi_get_cb_info (env , info , & argc , args , NULL , NULL ));
44+
45+ NAPI_ASSERT (env , argc == 2 , "Wrong number of arguments" );
46+
47+ // Extract the name of the property to check
48+ char buffer [128 ];
49+ size_t copied ;
50+ NAPI_CALL (env ,
51+ napi_get_value_string_utf8 (env , args [1 ], buffer , sizeof (buffer ), & copied ));
52+
53+ // do the check and create the boolean return value
54+ bool value ;
55+ napi_value result ;
56+ NAPI_CALL (env , napi_has_named_property (env , args [0 ], buffer , & value ));
57+ NAPI_CALL (env , napi_get_boolean (env , value , & result ));
58+
59+ return result ;
60+ }
61+
4062void Init (napi_env env , napi_value exports , napi_value module , void * priv ) {
4163 napi_value number ;
4264 NAPI_CALL_RETURN_VOID (env , napi_create_number (env , value_ , & number ));
@@ -50,6 +72,7 @@ void Init(napi_env env, napi_value exports, napi_value module, void* priv) {
5072 { "readwriteAccessor2" , 0 , 0 , GetValue , SetValue , 0 , napi_writable , 0 },
5173 { "readonlyAccessor1" , 0 , 0 , GetValue , NULL , 0 , napi_default , 0 },
5274 { "readonlyAccessor2" , 0 , 0 , GetValue , NULL , 0 , napi_writable , 0 },
75+ { "hasNamedProperty" , 0 , HasNamedProperty , 0 , 0 , 0 , napi_default , 0 },
5376 };
5477
5578 NAPI_CALL_RETURN_VOID (env , napi_define_properties (
0 commit comments