Skip to content

Commit 134961d

Browse files
petersandorJckXia
authored andcommitted
test: CallbackInfo NewTarget() basic coverage (#1048)
1 parent 1dfd03b commit 134961d

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

test/function.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ void IsConstructCall(const CallbackInfo& info) {
167167
callback({Napi::Boolean::New(info.Env(), isConstructCall)});
168168
}
169169

170+
Value NewTargetCallback(const CallbackInfo& info) {
171+
return info.NewTarget();
172+
}
173+
170174
void MakeCallbackWithArgs(const CallbackInfo& info) {
171175
Env env = info.Env();
172176
Function callback = info[0].As<Function>();
@@ -233,6 +237,8 @@ Object InitFunction(Env env) {
233237
Function::New(env, VoidCallbackWithData, nullptr, &testData);
234238
exports["valueCallbackWithData"] =
235239
Function::New(env, ValueCallbackWithData, nullptr, &testData);
240+
exports["newTargetCallback"] =
241+
Function::New(env, NewTargetCallback, std::string("newTargetCallback"));
236242
exports["callWithArgs"] = Function::New(env, CallWithArgs);
237243
exports["callWithVector"] = Function::New(env, CallWithVector);
238244
exports["callWithVectorUsingCppWrapper"] =
@@ -271,6 +277,8 @@ Object InitFunction(Env env) {
271277
exports["voidCallback"] = Function::New<VoidCallback>(env, "voidCallback");
272278
exports["valueCallback"] =
273279
Function::New<ValueCallback>(env, std::string("valueCallback"));
280+
exports["newTargetCallback"] =
281+
Function::New<NewTargetCallback>(env, std::string("newTargetCallback"));
274282
exports["voidCallbackWithData"] =
275283
Function::New<VoidCallbackWithData>(env, nullptr, &testData);
276284
exports["valueCallbackWithData"] =

test/function.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ function test (binding) {
1818

1919
assert.deepStrictEqual(binding.valueCallback(), { foo: 'bar' });
2020

21+
/* eslint-disable-next-line no-new, new-cap */
22+
assert.strictEqual(new binding.newTargetCallback(), binding.newTargetCallback);
23+
assert.strictEqual(binding.newTargetCallback(), undefined);
24+
2125
let args = null;
2226
let ret = null;
2327
let receiver = null;

0 commit comments

Comments
 (0)