Skip to content

Commit b65e01b

Browse files
authored
test: fix not escaped handles (#1676)
1 parent 6babc96 commit b65e01b

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

test/function_reference.cc

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,57 +30,58 @@ class FuncRefObject : public Napi::ObjectWrap<FuncRefObject> {
3030
namespace {
3131

3232
Value ConstructRefFromExisitingRef(const CallbackInfo& info) {
33-
HandleScope scope(info.Env());
33+
EscapableHandleScope scope(info.Env());
3434
FunctionReference ref;
3535
FunctionReference movedRef;
3636
ref.Reset(info[0].As<Function>());
3737
movedRef = std::move(ref);
3838

39-
return MaybeUnwrap(movedRef({}));
39+
return scope.Escape(MaybeUnwrap(movedRef({})));
4040
}
4141

4242
Value CallWithVectorArgs(const CallbackInfo& info) {
43-
HandleScope scope(info.Env());
43+
EscapableHandleScope scope(info.Env());
4444
std::vector<napi_value> newVec;
4545
FunctionReference ref;
4646
ref.Reset(info[0].As<Function>());
4747

4848
for (int i = 1; i < (int)info.Length(); i++) {
4949
newVec.push_back(info[i]);
5050
}
51-
return MaybeUnwrap(ref.Call(newVec));
51+
return scope.Escape(MaybeUnwrap(ref.Call(newVec)));
5252
}
5353

5454
Value CallWithInitList(const CallbackInfo& info) {
55-
HandleScope scope(info.Env());
55+
EscapableHandleScope scope(info.Env());
5656
FunctionReference ref;
5757
ref.Reset(info[0].As<Function>());
5858

59-
return MaybeUnwrap(ref.Call({info[1], info[2], info[3]}));
59+
return scope.Escape(MaybeUnwrap(ref.Call({info[1], info[2], info[3]})));
6060
}
6161

6262
Value CallWithRecvInitList(const CallbackInfo& info) {
63-
HandleScope scope(info.Env());
63+
EscapableHandleScope scope(info.Env());
6464
FunctionReference ref;
6565
ref.Reset(info[0].As<Function>());
6666

67-
return MaybeUnwrap(ref.Call(info[1], {info[2], info[3], info[4]}));
67+
return scope.Escape(
68+
MaybeUnwrap(ref.Call(info[1], {info[2], info[3], info[4]})));
6869
}
6970

7071
Value CallWithRecvVector(const CallbackInfo& info) {
71-
HandleScope scope(info.Env());
72+
EscapableHandleScope scope(info.Env());
7273
FunctionReference ref;
7374
std::vector<napi_value> newVec;
7475
ref.Reset(info[0].As<Function>());
7576

7677
for (int i = 2; i < (int)info.Length(); i++) {
7778
newVec.push_back(info[i]);
7879
}
79-
return MaybeUnwrap(ref.Call(info[1], newVec));
80+
return scope.Escape(MaybeUnwrap(ref.Call(info[1], newVec)));
8081
}
8182

8283
Value CallWithRecvArgc(const CallbackInfo& info) {
83-
HandleScope scope(info.Env());
84+
EscapableHandleScope scope(info.Env());
8485
FunctionReference ref;
8586
ref.Reset(info[0].As<Function>());
8687

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

94-
return MaybeUnwrap(ref.Call(info[1], argLength, args.get()));
95+
return scope.Escape(MaybeUnwrap(ref.Call(info[1], argLength, args.get())));
9596
}
9697

9798
Value MakeAsyncCallbackWithInitList(const Napi::CallbackInfo& info) {
@@ -163,19 +164,19 @@ Value CreateFunctionReferenceUsingNewVec(const Napi::CallbackInfo& info) {
163164
}
164165

165166
Value Call(const CallbackInfo& info) {
166-
HandleScope scope(info.Env());
167+
EscapableHandleScope scope(info.Env());
167168
FunctionReference ref;
168169
ref.Reset(info[0].As<Function>());
169170

170-
return MaybeUnwrapOr(ref.Call({}), Value());
171+
return scope.Escape(MaybeUnwrapOr(ref.Call({}), Value()));
171172
}
172173

173174
Value Construct(const CallbackInfo& info) {
174-
HandleScope scope(info.Env());
175+
EscapableHandleScope scope(info.Env());
175176
FunctionReference ref;
176177
ref.Reset(info[0].As<Function>());
177178

178-
return MaybeUnwrapOr(ref.New({}), Object());
179+
return scope.Escape(MaybeUnwrapOr(ref.New({}), Object()));
179180
}
180181
} // namespace
181182

0 commit comments

Comments
 (0)