@@ -86,6 +86,34 @@ napi_value Has(napi_env env, napi_callback_info info) {
86
86
return ret ;
87
87
}
88
88
89
+ napi_value HasOwn (napi_env env , napi_callback_info info ) {
90
+ size_t argc = 2 ;
91
+ napi_value args [2 ];
92
+ NAPI_CALL (env , napi_get_cb_info (env , info , & argc , args , NULL , NULL ));
93
+
94
+ NAPI_ASSERT (env , argc == 2 , "Wrong number of arguments" );
95
+
96
+ napi_valuetype valuetype0 ;
97
+ NAPI_CALL (env , napi_typeof (env , args [0 ], & valuetype0 ));
98
+
99
+ NAPI_ASSERT (env , valuetype0 == napi_object ,
100
+ "Wrong type of arguments. Expects an object as first argument." );
101
+
102
+ // napi_valuetype valuetype1;
103
+ // NAPI_CALL(env, napi_typeof(env, args[1], &valuetype1));
104
+ //
105
+ // NAPI_ASSERT(env, valuetype1 == napi_string || valuetype1 == napi_symbol,
106
+ // "Wrong type of arguments. Expects a string or symbol as second.");
107
+
108
+ bool has_property ;
109
+ NAPI_CALL (env , napi_has_own_property (env , args [0 ], args [1 ], & has_property ));
110
+
111
+ napi_value ret ;
112
+ NAPI_CALL (env , napi_get_boolean (env , has_property , & ret ));
113
+
114
+ return ret ;
115
+ }
116
+
89
117
napi_value Delete (napi_env env , napi_callback_info info ) {
90
118
size_t argc = 2 ;
91
119
napi_value args [2 ];
@@ -196,6 +224,7 @@ void Init(napi_env env, napi_value exports, napi_value module, void* priv) {
196
224
DECLARE_NAPI_PROPERTY ("Get" , Get ),
197
225
DECLARE_NAPI_PROPERTY ("Set" , Set ),
198
226
DECLARE_NAPI_PROPERTY ("Has" , Has ),
227
+ DECLARE_NAPI_PROPERTY ("HasOwn" , HasOwn ),
199
228
DECLARE_NAPI_PROPERTY ("Delete" , Delete ),
200
229
DECLARE_NAPI_PROPERTY ("New" , New ),
201
230
DECLARE_NAPI_PROPERTY ("Inflate" , Inflate ),
0 commit comments