@@ -501,7 +501,7 @@ MaybeLocal<Object> GetPerContextExports(Local<Context> context) {
501501
502502 Local<Object> exports = Object::New (isolate);
503503 if (context->Global ()->SetPrivate (context, key, exports).IsNothing () ||
504- ! InitializePrimordials (context))
504+ InitializePrimordials (context). IsEmpty ( ))
505505 return MaybeLocal<Object>();
506506 return handle_scope.Escape (exports);
507507}
@@ -514,7 +514,7 @@ Local<Context> NewContext(Isolate* isolate,
514514 auto context = Context::New (isolate, nullptr , object_template);
515515 if (context.IsEmpty ()) return context;
516516
517- if (! InitializeContext (context)) {
517+ if (InitializeContext (context). IsEmpty ( )) {
518518 return Local<Context>();
519519 }
520520
@@ -581,16 +581,21 @@ void InitializeContextRuntime(Local<Context> context) {
581581 }
582582}
583583
584- bool InitializeContextForSnapshot (Local<Context> context) {
584+ MaybeLocal<Context> InitializeContextForSnapshot (Local<Context> context) {
585585 Isolate* isolate = context->GetIsolate ();
586586 HandleScope handle_scope (isolate);
587587
588588 context->SetEmbedderData (ContextEmbedderIndex::kAllowWasmCodeGeneration ,
589589 True (isolate));
590- return InitializePrimordials (context);
590+
591+ if (InitializePrimordials (context).IsEmpty ()) {
592+ return MaybeLocal<Context>();
593+ }
594+
595+ return context;
591596}
592597
593- bool InitializePrimordials (Local<Context> context) {
598+ MaybeLocal<Object> InitializePrimordials (Local<Context> context) {
594599 // Run per-context JS files.
595600 Isolate* isolate = context->GetIsolate ();
596601 Context::Scope context_scope (context);
@@ -606,7 +611,7 @@ bool InitializePrimordials(Local<Context> context) {
606611 if (!primordials->SetPrototype (context, Null (isolate)).FromJust () ||
607612 !GetPerContextExports (context).ToLocal (&exports) ||
608613 !exports->Set (context, primordials_string, primordials).FromJust ()) {
609- return false ;
614+ return MaybeLocal<Object>() ;
610615 }
611616
612617 static const char * context_files[] = {" internal/per_context/primordials" ,
@@ -623,27 +628,27 @@ bool InitializePrimordials(Local<Context> context) {
623628 context, *module , ¶meters, nullptr );
624629 Local<Function> fn;
625630 if (!maybe_fn.ToLocal (&fn)) {
626- return false ;
631+ return MaybeLocal<Object>() ;
627632 }
628633 MaybeLocal<Value> result =
629634 fn->Call (context, Undefined (isolate), arraysize (arguments), arguments);
630635 // Execution failed during context creation.
631- // TODO(joyeecheung): deprecate this signature and return a MaybeLocal.
632636 if (result.IsEmpty ()) {
633- return false ;
637+ return MaybeLocal<Object>() ;
634638 }
635639 }
636640
637- return true ;
641+ return primordials ;
638642}
639643
640- bool InitializeContext (Local<Context> context) {
641- if (! InitializeContextForSnapshot (context)) {
642- return false ;
644+ MaybeLocal<Context> InitializeContext (Local<Context> context) {
645+ if (InitializeContextForSnapshot (context). IsEmpty ( )) {
646+ return MaybeLocal<Context>() ;
643647 }
644648
645649 InitializeContextRuntime (context);
646- return true ;
650+
651+ return context;
647652}
648653
649654uv_loop_t * GetCurrentEventLoop (Isolate* isolate) {
0 commit comments