@@ -339,6 +339,191 @@ static napi_value Unwrap(napi_env env, napi_callback_info info) {
339
339
return result ;
340
340
}
341
341
342
+ static napi_value TestSetProperty (napi_env env ,
343
+ napi_callback_info info ) {
344
+ napi_status ret [4 ];
345
+ napi_value object , key , value , prop_value ;
346
+
347
+ NAPI_CALL (env , napi_create_object (env , & object ));
348
+
349
+ NAPI_CALL (env , napi_create_string_utf8 (env , "" , NAPI_AUTO_LENGTH , & key ));
350
+
351
+ NAPI_CALL (env , napi_create_object (env , & value ));
352
+
353
+ ret [0 ] = napi_set_property (NULL , object , key , value );
354
+
355
+ ret [1 ] = napi_set_property (env , NULL , key , value );
356
+
357
+ ret [2 ] = napi_set_property (env , object , NULL , value );
358
+
359
+ ret [3 ] = napi_set_property (env , object , key , NULL );
360
+
361
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
362
+ (ret [0 ] == napi_invalid_arg ?
363
+ "pass" : "fail" ),
364
+ NAPI_AUTO_LENGTH ,
365
+ & prop_value ));
366
+ NAPI_CALL (env , napi_set_named_property (env ,
367
+ object ,
368
+ "envIsNull" ,
369
+ prop_value ));
370
+
371
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
372
+ (ret [1 ] == napi_invalid_arg ?
373
+ "pass" : "fail" ),
374
+ NAPI_AUTO_LENGTH ,
375
+ & prop_value ));
376
+ NAPI_CALL (env , napi_set_named_property (env ,
377
+ object ,
378
+ "objectIsNull" ,
379
+ prop_value ));
380
+
381
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
382
+ (ret [2 ] == napi_invalid_arg ?
383
+ "pass" : "fail" ),
384
+ NAPI_AUTO_LENGTH ,
385
+ & prop_value ));
386
+ NAPI_CALL (env , napi_set_named_property (env ,
387
+ object ,
388
+ "keyIsNull" ,
389
+ prop_value ));
390
+
391
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
392
+ (ret [3 ] == napi_invalid_arg ?
393
+ "pass" : "fail" ),
394
+ NAPI_AUTO_LENGTH ,
395
+ & prop_value ));
396
+ NAPI_CALL (env , napi_set_named_property (env ,
397
+ object ,
398
+ "valueIsNull" ,
399
+ prop_value ));
400
+
401
+ return object ;
402
+ }
403
+
404
+ static napi_value TestHasProperty (napi_env env ,
405
+ napi_callback_info info ) {
406
+ napi_status ret [4 ];
407
+ napi_value object , key , prop_result ;
408
+ bool result ;
409
+
410
+ NAPI_CALL (env , napi_create_object (env , & object ));
411
+
412
+ NAPI_CALL (env , napi_create_string_utf8 (env , "" , NAPI_AUTO_LENGTH , & key ));
413
+
414
+ ret [0 ] = napi_has_property (NULL , object , key , & result );
415
+
416
+ ret [1 ] = napi_has_property (env , NULL , key , & result );
417
+
418
+ ret [2 ] = napi_has_property (env , object , NULL , & result );
419
+
420
+ ret [3 ] = napi_has_property (env , object , key , NULL );
421
+
422
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
423
+ (ret [0 ] == napi_invalid_arg ?
424
+ "pass" : "fail" ),
425
+ NAPI_AUTO_LENGTH ,
426
+ & prop_result ));
427
+ NAPI_CALL (env , napi_set_named_property (env ,
428
+ object ,
429
+ "envIsNull" ,
430
+ prop_result ));
431
+
432
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
433
+ (ret [1 ] == napi_invalid_arg ?
434
+ "pass" : "fail" ),
435
+ NAPI_AUTO_LENGTH ,
436
+ & prop_result ));
437
+ NAPI_CALL (env , napi_set_named_property (env ,
438
+ object ,
439
+ "objectIsNull" ,
440
+ prop_result ));
441
+
442
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
443
+ (ret [2 ] == napi_invalid_arg ?
444
+ "pass" : "fail" ),
445
+ NAPI_AUTO_LENGTH ,
446
+ & prop_result ));
447
+ NAPI_CALL (env , napi_set_named_property (env ,
448
+ object ,
449
+ "keyIsNull" ,
450
+ prop_result ));
451
+
452
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
453
+ (ret [3 ] == napi_invalid_arg ?
454
+ "pass" : "fail" ),
455
+ NAPI_AUTO_LENGTH ,
456
+ & prop_result ));
457
+ NAPI_CALL (env , napi_set_named_property (env ,
458
+ object ,
459
+ "resultIsNull" ,
460
+ prop_result ));
461
+
462
+ return object ;
463
+ }
464
+
465
+ static napi_value TestGetProperty (napi_env env ,
466
+ napi_callback_info info ) {
467
+ napi_status ret [4 ];
468
+ napi_value object , key , result , prop_result ;
469
+
470
+ NAPI_CALL (env , napi_create_object (env , & object ));
471
+
472
+ NAPI_CALL (env , napi_create_string_utf8 (env , "" , NAPI_AUTO_LENGTH , & key ));
473
+
474
+ NAPI_CALL (env , napi_create_object (env , & result ));
475
+
476
+ ret [0 ] = napi_get_property (NULL , object , key , & result );
477
+
478
+ ret [1 ] = napi_get_property (env , NULL , key , & result );
479
+
480
+ ret [2 ] = napi_get_property (env , object , NULL , & result );
481
+
482
+ ret [3 ] = napi_get_property (env , object , key , NULL );
483
+
484
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
485
+ (ret [0 ] == napi_invalid_arg ?
486
+ "pass" : "fail" ),
487
+ NAPI_AUTO_LENGTH ,
488
+ & prop_result ));
489
+ NAPI_CALL (env , napi_set_named_property (env ,
490
+ object ,
491
+ "envIsNull" ,
492
+ prop_result ));
493
+
494
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
495
+ (ret [1 ] == napi_invalid_arg ?
496
+ "pass" : "fail" ),
497
+ NAPI_AUTO_LENGTH ,
498
+ & prop_result ));
499
+ NAPI_CALL (env , napi_set_named_property (env ,
500
+ object ,
501
+ "objectIsNull" ,
502
+ prop_result ));
503
+
504
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
505
+ (ret [2 ] == napi_invalid_arg ?
506
+ "pass" : "fail" ),
507
+ NAPI_AUTO_LENGTH ,
508
+ & prop_result ));
509
+ NAPI_CALL (env , napi_set_named_property (env ,
510
+ object ,
511
+ "keyIsNull" ,
512
+ prop_result ));
513
+
514
+ NAPI_CALL (env , napi_create_string_utf8 (env ,
515
+ (ret [3 ] == napi_invalid_arg ?
516
+ "pass" : "fail" ),
517
+ NAPI_AUTO_LENGTH ,
518
+ & prop_result ));
519
+ NAPI_CALL (env , napi_set_named_property (env ,
520
+ object ,
521
+ "resultIsNull" ,
522
+ prop_result ));
523
+
524
+ return object ;
525
+ }
526
+
342
527
EXTERN_C_START
343
528
napi_value Init (napi_env env , napi_value exports ) {
344
529
napi_property_descriptor descriptors [] = {
@@ -355,6 +540,9 @@ napi_value Init(napi_env env, napi_value exports) {
355
540
DECLARE_NAPI_PROPERTY ("Inflate" , Inflate ),
356
541
DECLARE_NAPI_PROPERTY ("Wrap" , Wrap ),
357
542
DECLARE_NAPI_PROPERTY ("Unwrap" , Unwrap ),
543
+ DECLARE_NAPI_PROPERTY ("TestSetProperty" , TestSetProperty ),
544
+ DECLARE_NAPI_PROPERTY ("TestHasProperty" , TestHasProperty ),
545
+ DECLARE_NAPI_PROPERTY ("TestGetProperty" , TestGetProperty ),
358
546
};
359
547
360
548
NAPI_CALL (env , napi_define_properties (
0 commit comments