Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions test/function_reference.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,57 +30,58 @@ class FuncRefObject : public Napi::ObjectWrap<FuncRefObject> {
namespace {

Value ConstructRefFromExisitingRef(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
FunctionReference movedRef;
ref.Reset(info[0].As<Function>());
movedRef = std::move(ref);

return MaybeUnwrap(movedRef({}));
return scope.Escape(MaybeUnwrap(movedRef({})));
}

Value CallWithVectorArgs(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
std::vector<napi_value> newVec;
FunctionReference ref;
ref.Reset(info[0].As<Function>());

for (int i = 1; i < (int)info.Length(); i++) {
newVec.push_back(info[i]);
}
return MaybeUnwrap(ref.Call(newVec));
return scope.Escape(MaybeUnwrap(ref.Call(newVec)));
}

Value CallWithInitList(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
ref.Reset(info[0].As<Function>());

return MaybeUnwrap(ref.Call({info[1], info[2], info[3]}));
return scope.Escape(MaybeUnwrap(ref.Call({info[1], info[2], info[3]})));
}

Value CallWithRecvInitList(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
ref.Reset(info[0].As<Function>());

return MaybeUnwrap(ref.Call(info[1], {info[2], info[3], info[4]}));
return scope.Escape(
MaybeUnwrap(ref.Call(info[1], {info[2], info[3], info[4]})));
}

Value CallWithRecvVector(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
std::vector<napi_value> newVec;
ref.Reset(info[0].As<Function>());

for (int i = 2; i < (int)info.Length(); i++) {
newVec.push_back(info[i]);
}
return MaybeUnwrap(ref.Call(info[1], newVec));
return scope.Escape(MaybeUnwrap(ref.Call(info[1], newVec)));
}

Value CallWithRecvArgc(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
ref.Reset(info[0].As<Function>());

Expand All @@ -91,7 +92,7 @@ Value CallWithRecvArgc(const CallbackInfo& info) {
args[i] = info[i + 2];
}

return MaybeUnwrap(ref.Call(info[1], argLength, args.get()));
return scope.Escape(MaybeUnwrap(ref.Call(info[1], argLength, args.get())));
}

Value MakeAsyncCallbackWithInitList(const Napi::CallbackInfo& info) {
Expand Down Expand Up @@ -163,19 +164,19 @@ Value CreateFunctionReferenceUsingNewVec(const Napi::CallbackInfo& info) {
}

Value Call(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
ref.Reset(info[0].As<Function>());

return MaybeUnwrapOr(ref.Call({}), Value());
return scope.Escape(MaybeUnwrapOr(ref.Call({}), Value()));
}

Value Construct(const CallbackInfo& info) {
HandleScope scope(info.Env());
EscapableHandleScope scope(info.Env());
FunctionReference ref;
ref.Reset(info[0].As<Function>());

return MaybeUnwrapOr(ref.New({}), Object());
return scope.Escape(MaybeUnwrapOr(ref.New({}), Object()));
}
} // namespace

Expand Down
Loading