@@ -241,8 +241,10 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
241241 uint32_t len = export_names_arr->Length ();
242242 LocalVector<String> export_names (realm->isolate (), len);
243243 for (uint32_t i = 0 ; i < len; i++) {
244- Local<Value> export_name_val =
245- export_names_arr->Get (context, i).ToLocalChecked ();
244+ Local<Value> export_name_val;
245+ if (!export_names_arr->Get (context, i).ToLocal (&export_name_val)) {
246+ return ;
247+ }
246248 CHECK (export_name_val->IsString ());
247249 export_names[i] = export_name_val.As <String>();
248250 }
@@ -612,7 +614,10 @@ void ModuleWrap::Evaluate(const FunctionCallbackInfo<Value>& args) {
612614 return ;
613615 }
614616
615- args.GetReturnValue ().Set (result.ToLocalChecked ());
617+ Local<Value> res;
618+ if (result.ToLocal (&res)) {
619+ args.GetReturnValue ().Set (res);
620+ }
616621}
617622
618623void ModuleWrap::InstantiateSync (const FunctionCallbackInfo<Value>& args) {
@@ -862,10 +867,10 @@ static MaybeLocal<Promise> ImportModuleDynamically(
862867 // from the realm global object.
863868 if (options->Length () == HostDefinedOptions::kLength ) {
864869 id = options->Get (context, HostDefinedOptions::kID ).As <Symbol>();
865- } else {
866- id = context-> Global ( )
867- -> GetPrivate (context, env-> host_defined_option_symbol ())
868- . ToLocalChecked ();
870+ } else if (!context-> Global ()
871+ -> GetPrivate ( context, env-> host_defined_option_symbol () )
872+ . ToLocal (&id)) {
873+ return MaybeLocal<Promise> ();
869874 }
870875
871876 Local<Object> attributes =
@@ -985,7 +990,9 @@ MaybeLocal<Value> ModuleWrap::SyntheticModuleEvaluationStepsCallback(
985990 return MaybeLocal<Value>();
986991 }
987992
988- resolver->Resolve (context, Undefined (isolate)).ToChecked ();
993+ if (resolver->Resolve (context, Undefined (isolate)).IsNothing ()) {
994+ return MaybeLocal<Value>();
995+ }
989996 return resolver->GetPromise ();
990997}
991998
@@ -1027,15 +1034,18 @@ void ModuleWrap::CreateCachedData(const FunctionCallbackInfo<Value>& args) {
10271034 std::unique_ptr<ScriptCompiler::CachedData> cached_data (
10281035 ScriptCompiler::CreateCodeCache (unbound_module_script));
10291036 Environment* env = Environment::GetCurrent (args);
1037+ Local<Object> result;
10301038 if (!cached_data) {
1031- args.GetReturnValue ().Set (Buffer::New (env, 0 ).ToLocalChecked ());
1032- } else {
1033- MaybeLocal<Object> buf =
1034- Buffer::Copy (env,
1035- reinterpret_cast <const char *>(cached_data->data ),
1036- cached_data->length );
1037- args.GetReturnValue ().Set (buf.ToLocalChecked ());
1039+ if (!Buffer::New (env, 0 ).ToLocal (&result)) {
1040+ return ;
1041+ }
1042+ } else if (!Buffer::Copy (env,
1043+ reinterpret_cast <const char *>(cached_data->data ),
1044+ cached_data->length )
1045+ .ToLocal (&result)) {
1046+ return ;
10381047 }
1048+ args.GetReturnValue ().Set (result);
10391049}
10401050
10411051// This v8::Module::ResolveModuleCallback simply links `import 'original'`
@@ -1082,8 +1092,10 @@ void ModuleWrap::CreateRequiredModuleFacade(
10821092
10831093 // The module facade instantiation simply links `import 'original'` in the
10841094 // facade with the original module and should never fail.
1085- Local<Module> facade =
1086- ScriptCompiler::CompileModule (isolate, &source).ToLocalChecked ();
1095+ Local<Module> facade;
1096+ if (!ScriptCompiler::CompileModule (isolate, &source).ToLocal (&facade)) {
1097+ return ;
1098+ }
10871099 // Stash the original module in temporary_required_module_facade_original
10881100 // for the LinkRequireFacadeWithOriginal() callback to pick it up.
10891101 CHECK (env->temporary_required_module_facade_original .IsEmpty ());
@@ -1094,7 +1106,10 @@ void ModuleWrap::CreateRequiredModuleFacade(
10941106 env->temporary_required_module_facade_original .Reset ();
10951107
10961108 // The evaluation of the facade is synchronous.
1097- Local<Value> evaluated = facade->Evaluate (context).ToLocalChecked ();
1109+ Local<Value> evaluated;
1110+ if (!facade->Evaluate (context).ToLocal (&evaluated)) {
1111+ return ;
1112+ }
10981113 CHECK (evaluated->IsPromise ());
10991114 CHECK_EQ (evaluated.As <Promise>()->State (), Promise::PromiseState::kFulfilled );
11001115
0 commit comments