@@ -501,7 +501,7 @@ MaybeLocal<Object> GetPerContextExports(Local<Context> context) {
501
501
502
502
Local<Object> exports = Object::New (isolate);
503
503
if (context->Global ()->SetPrivate (context, key, exports).IsNothing () ||
504
- ! InitializePrimordials (context))
504
+ InitializePrimordials (context). IsEmpty ( ))
505
505
return MaybeLocal<Object>();
506
506
return handle_scope.Escape (exports);
507
507
}
@@ -514,7 +514,7 @@ Local<Context> NewContext(Isolate* isolate,
514
514
auto context = Context::New (isolate, nullptr , object_template);
515
515
if (context.IsEmpty ()) return context;
516
516
517
- if (! InitializeContext (context)) {
517
+ if (InitializeContext (context). IsEmpty ( )) {
518
518
return Local<Context>();
519
519
}
520
520
@@ -581,16 +581,21 @@ void InitializeContextRuntime(Local<Context> context) {
581
581
}
582
582
}
583
583
584
- bool InitializeContextForSnapshot (Local<Context> context) {
584
+ MaybeLocal<Context> InitializeContextForSnapshot (Local<Context> context) {
585
585
Isolate* isolate = context->GetIsolate ();
586
586
HandleScope handle_scope (isolate);
587
587
588
588
context->SetEmbedderData (ContextEmbedderIndex::kAllowWasmCodeGeneration ,
589
589
True (isolate));
590
- return InitializePrimordials (context);
590
+
591
+ if (InitializePrimordials (context).IsEmpty ()) {
592
+ return MaybeLocal<Context>();
593
+ }
594
+
595
+ return context;
591
596
}
592
597
593
- bool InitializePrimordials (Local<Context> context) {
598
+ MaybeLocal<Object> InitializePrimordials (Local<Context> context) {
594
599
// Run per-context JS files.
595
600
Isolate* isolate = context->GetIsolate ();
596
601
Context::Scope context_scope (context);
@@ -606,7 +611,7 @@ bool InitializePrimordials(Local<Context> context) {
606
611
if (!primordials->SetPrototype (context, Null (isolate)).FromJust () ||
607
612
!GetPerContextExports (context).ToLocal (&exports) ||
608
613
!exports->Set (context, primordials_string, primordials).FromJust ()) {
609
- return false ;
614
+ return MaybeLocal<Object>() ;
610
615
}
611
616
612
617
static const char * context_files[] = {" internal/per_context/primordials" ,
@@ -623,27 +628,27 @@ bool InitializePrimordials(Local<Context> context) {
623
628
context, *module, ¶meters, nullptr );
624
629
Local<Function> fn;
625
630
if (!maybe_fn.ToLocal (&fn)) {
626
- return false ;
631
+ return MaybeLocal<Object>() ;
627
632
}
628
633
MaybeLocal<Value> result =
629
634
fn->Call (context, Undefined (isolate), arraysize (arguments), arguments);
630
635
// Execution failed during context creation.
631
- // TODO(joyeecheung): deprecate this signature and return a MaybeLocal.
632
636
if (result.IsEmpty ()) {
633
- return false ;
637
+ return MaybeLocal<Object>() ;
634
638
}
635
639
}
636
640
637
- return true ;
641
+ return primordials ;
638
642
}
639
643
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>() ;
643
647
}
644
648
645
649
InitializeContextRuntime (context);
646
- return true ;
650
+
651
+ return context;
647
652
}
648
653
649
654
uv_loop_t * GetCurrentEventLoop (Isolate* isolate) {
0 commit comments