11#include <js_native_api.h>
22#include "../common.h"
33
4+ static napi_value TestCreateFunctionParameters (napi_env env ,
5+ napi_callback_info info ) {
6+ napi_status ret [4 ];
7+ napi_value result , return_value , prop_value ;
8+
9+
10+ ret [0 ] = napi_create_function (NULL ,
11+ "TrackedFunction" ,
12+ NAPI_AUTO_LENGTH ,
13+ TestCreateFunctionParameters ,
14+ NULL ,
15+ & result );
16+
17+ ret [1 ] = napi_create_function (env ,
18+ NULL ,
19+ NAPI_AUTO_LENGTH ,
20+ TestCreateFunctionParameters ,
21+ NULL ,
22+ & result );
23+
24+ ret [2 ] = napi_create_function (env ,
25+ "TrackedFunction" ,
26+ NAPI_AUTO_LENGTH ,
27+ NULL ,
28+ NULL ,
29+ & result );
30+
31+ ret [3 ] = napi_create_function (env ,
32+ "TrackedFunction" ,
33+ NAPI_AUTO_LENGTH ,
34+ TestCreateFunctionParameters ,
35+ NULL ,
36+ NULL );
37+
38+ NAPI_CALL (env , napi_create_object (env , & return_value ));
39+
40+ NAPI_CALL (env , napi_create_string_utf8 (env ,
41+ (ret [0 ] == napi_invalid_arg ?
42+ "pass" : "fail" ),
43+ NAPI_AUTO_LENGTH ,
44+ & prop_value ));
45+ NAPI_CALL (env , napi_set_named_property (env ,
46+ return_value ,
47+ "envIsNull" ,
48+ prop_value ));
49+
50+ NAPI_CALL (env , napi_create_string_utf8 (env ,
51+ (ret [1 ] == napi_ok ?
52+ "pass" : "fail" ),
53+ NAPI_AUTO_LENGTH ,
54+ & prop_value ));
55+ NAPI_CALL (env , napi_set_named_property (env ,
56+ return_value ,
57+ "nameIsNull" ,
58+ prop_value ));
59+
60+ NAPI_CALL (env , napi_create_string_utf8 (env ,
61+ (ret [2 ] == napi_invalid_arg ?
62+ "pass" : "fail" ),
63+ NAPI_AUTO_LENGTH ,
64+ & prop_value ));
65+ NAPI_CALL (env , napi_set_named_property (env ,
66+ return_value ,
67+ "cbIsNull" ,
68+ prop_value ));
69+
70+ NAPI_CALL (env , napi_create_string_utf8 (env ,
71+ (ret [3 ] == napi_invalid_arg ?
72+ "pass" : "fail" ),
73+ NAPI_AUTO_LENGTH ,
74+ & prop_value ));
75+ NAPI_CALL (env , napi_set_named_property (env ,
76+ return_value ,
77+ "resultIsNull" ,
78+ prop_value ));
79+
80+ return return_value ;
81+ }
82+
483static napi_value TestCallFunction (napi_env env , napi_callback_info info ) {
584 size_t argc = 10 ;
685 napi_value args [10 ];
@@ -124,6 +203,14 @@ napi_value Init(napi_env env, napi_value exports) {
124203 NULL ,
125204 & fn4 ));
126205
206+ napi_value fn5 ;
207+ NAPI_CALL (env , napi_create_function (env ,
208+ "TestCreateFunctionParameters" ,
209+ NAPI_AUTO_LENGTH ,
210+ TestCreateFunctionParameters ,
211+ NULL ,
212+ & fn5 ));
213+
127214 NAPI_CALL (env , napi_set_named_property (env , exports , "TestCall" , fn1 ));
128215 NAPI_CALL (env , napi_set_named_property (env , exports , "TestName" , fn2 ));
129216 NAPI_CALL (env , napi_set_named_property (env , exports , "TestNameShort" , fn3 ));
@@ -132,6 +219,11 @@ napi_value Init(napi_env env, napi_value exports) {
132219 "MakeTrackedFunction" ,
133220 fn4 ));
134221
222+ NAPI_CALL (env , napi_set_named_property (env ,
223+ exports ,
224+ "TestCreateFunctionParameters" ,
225+ fn5 ));
226+
135227 return exports ;
136228}
137229EXTERN_C_END
0 commit comments