@@ -13,6 +13,7 @@ using v8::HandleScope;
1313using v8::Isolate;
1414using v8::Local;
1515using v8::MaybeLocal;
16+ using v8::Number;
1617using v8::Object;
1718using v8::String;
1819using v8::Undefined;
@@ -51,7 +52,7 @@ InternalCallbackScope::InternalCallbackScope(Environment* env,
5152 Local<Object> object,
5253 const async_context& asyncContext,
5354 int flags,
54- v8:: Local<v8:: Value> context_frame)
55+ Local<Value> context_frame)
5556 : env_(env),
5657 async_context_(asyncContext),
5758 object_(object),
@@ -216,7 +217,7 @@ MaybeLocal<Value> InternalMakeCallback(Environment* env,
216217 Local<Context> context = env->context ();
217218 if (use_async_hooks_trampoline) {
218219 MaybeStackBuffer<Local<Value>, 16 > args (3 + argc);
219- args[0 ] = v8:: Number::New (env->isolate (), asyncContext.async_id );
220+ args[0 ] = Number::New (env->isolate (), asyncContext.async_id );
220221 args[1 ] = resource;
221222 args[2 ] = callback;
222223 for (int i = 0 ; i < argc; i++) {
@@ -248,8 +249,10 @@ MaybeLocal<Value> MakeCallback(Isolate* isolate,
248249 int argc,
249250 Local<Value> argv[],
250251 async_context asyncContext) {
251- Local<String> method_string =
252- String::NewFromUtf8 (isolate, method).ToLocalChecked ();
252+ Local<String> method_string;
253+ if (!String::NewFromUtf8 (isolate, method).ToLocal (&method_string)) {
254+ return {};
255+ }
253256 return MakeCallback (isolate, recv, method_string, argc, argv, asyncContext);
254257}
255258
@@ -260,13 +263,18 @@ MaybeLocal<Value> MakeCallback(Isolate* isolate,
260263 Local<Value> argv[],
261264 async_context asyncContext) {
262265 // Check can_call_into_js() first because calling Get() might do so.
263- Environment* env = Environment::GetCurrent (recv->GetCreationContextChecked ());
266+ Local<Context> context;
267+ if (!recv->GetCreationContext ().ToLocal (&context)) {
268+ return {};
269+ }
270+ Environment* env = Environment::GetCurrent (context);
264271 CHECK_NOT_NULL (env);
265- if (!env->can_call_into_js ()) return Local<Value>() ;
272+ if (!env->can_call_into_js ()) return {} ;
266273
267274 Local<Value> callback_v;
268- if (!recv->Get (isolate->GetCurrentContext (), symbol).ToLocal (&callback_v))
269- return Local<Value>();
275+ if (!recv->Get (isolate->GetCurrentContext (), symbol).ToLocal (&callback_v)) {
276+ return {};
277+ }
270278 if (!callback_v->IsFunction ()) {
271279 // This used to return an empty value, but Undefined() makes more sense
272280 // since no exception is pending here.
@@ -300,8 +308,11 @@ MaybeLocal<Value> InternalMakeCallback(Isolate* isolate,
300308 //
301309 // Because of the AssignToContext() call in src/node_contextify.cc,
302310 // the two contexts need not be the same.
303- Environment* env =
304- Environment::GetCurrent (callback->GetCreationContextChecked ());
311+ Local<Context> context;
312+ if (!callback->GetCreationContext ().ToLocal (&context)) {
313+ return {};
314+ }
315+ Environment* env = Environment::GetCurrent (context);
305316 CHECK_NOT_NULL (env);
306317 Context::Scope context_scope (env->context ());
307318 MaybeLocal<Value> ret = InternalMakeCallback (
@@ -323,12 +334,14 @@ MaybeLocal<Value> MakeSyncCallback(Isolate* isolate,
323334 Local<Function> callback,
324335 int argc,
325336 Local<Value> argv[]) {
326- Environment* env =
327- Environment::GetCurrent (callback->GetCreationContextChecked ());
337+ Local<Context> context;
338+ if (!callback->GetCreationContext ().ToLocal (&context)) {
339+ return {};
340+ }
341+ Environment* env = Environment::GetCurrent (context);
328342 CHECK_NOT_NULL (env);
329- if (!env->can_call_into_js ()) return Local<Value>() ;
343+ if (!env->can_call_into_js ()) return {} ;
330344
331- Local<Context> context = env->context ();
332345 Context::Scope context_scope (context);
333346 if (env->async_callback_scope_depth ()) {
334347 // There's another MakeCallback() on the stack, piggy back on it.
@@ -345,7 +358,7 @@ MaybeLocal<Value> MakeSyncCallback(Isolate* isolate,
345358 argc,
346359 argv,
347360 async_context{0 , 0 },
348- v8:: Undefined (isolate));
361+ Undefined (isolate));
349362 return ret;
350363}
351364
0 commit comments