@@ -15,7 +15,7 @@ void MyObject::Destructor(napi_env env, void* nativeObject, void* /*finalize_hin
1515#define DECLARE_NAPI_METHOD (name, func ) \
1616 { name, 0 , func, 0 , 0 , 0 , napi_default, 0 }
1717
18- void MyObject::Init (napi_env env, napi_value exports) {
18+ napi_value MyObject::Init (napi_env env, napi_value exports) {
1919 napi_status status;
2020 napi_property_descriptor properties[] = {
2121 { " value" , 0 , 0 , GetValue, SetValue, 0 , napi_default, 0 },
@@ -25,22 +25,24 @@ void MyObject::Init(napi_env env, napi_value exports) {
2525
2626 napi_value cons;
2727 status =
28- napi_define_class (env, " MyObject" , New, nullptr , 3 , properties, &cons);
28+ napi_define_class (env, " MyObject" , NAPI_AUTO_LENGTH, New, nullptr , 3 , properties, &cons);
2929 assert (status == napi_ok);
3030
3131 status = napi_create_reference (env, cons, 1 , &constructor);
3232 assert (status == napi_ok);
3333
3434 status = napi_set_named_property (env, exports, " MyObject" , cons);
3535 assert (status == napi_ok);
36+ return exports;
3637}
3738
3839napi_value MyObject::New (napi_env env, napi_callback_info info) {
3940 napi_status status;
4041
41- bool is_constructor ;
42- status = napi_is_construct_call (env, info, &is_constructor );
42+ napi_value target ;
43+ status = napi_get_new_target (env, info, &target );
4344 assert (status == napi_ok);
45+ bool is_constructor = target != nullptr ;
4446
4547 if (is_constructor) {
4648 // Invoked as constructor: `new MyObject(...)`
@@ -107,7 +109,7 @@ napi_value MyObject::GetValue(napi_env env, napi_callback_info info) {
107109 assert (status == napi_ok);
108110
109111 napi_value num;
110- status = napi_create_number (env, obj->value_ , &num);
112+ status = napi_create_double (env, obj->value_ , &num);
111113 assert (status == napi_ok);
112114
113115 return num;
@@ -147,7 +149,7 @@ napi_value MyObject::PlusOne(napi_env env, napi_callback_info info) {
147149 obj->value_ += 1 ;
148150
149151 napi_value num;
150- status = napi_create_number (env, obj->value_ , &num);
152+ status = napi_create_double (env, obj->value_ , &num);
151153 assert (status == napi_ok);
152154
153155 return num;
@@ -182,7 +184,7 @@ napi_value MyObject::Multiply(napi_env env, napi_callback_info info) {
182184
183185 const int kArgCount = 1 ;
184186 napi_value argv[kArgCount ];
185- status = napi_create_number (env, obj->value_ * multiple, argv);
187+ status = napi_create_double (env, obj->value_ * multiple, argv);
186188 assert (status == napi_ok);
187189
188190 napi_value instance;
0 commit comments