diff --git a/src/api/environment.cc b/src/api/environment.cc index 620f7b3f7c1c0e..ab8ef2f2d838ee 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -714,7 +714,12 @@ Maybe InitializePrimordials(Local context) { "internal/per_context/messageport", nullptr}; - auto builtin_loader = builtins::BuiltinLoader::Create(); + // We do not have access to a per-Environment BuiltinLoader instance + // at this point, because this code runs before an Environment exists + // in the first place. However, creating BuiltinLoader instances is + // relatively cheap and all the scripts that we may want to run at + // startup are always present in it. + thread_local auto builtin_loader = builtins::BuiltinLoader::Create(); for (const char** module = context_files; *module != nullptr; module++) { Local arguments[] = {exports, primordials}; if (builtin_loader diff --git a/src/node_builtins.cc b/src/node_builtins.cc index ad896d6b6f2b0c..77fffd81b696ba 100644 --- a/src/node_builtins.cc +++ b/src/node_builtins.cc @@ -563,7 +563,6 @@ void BuiltinLoader::GetBuiltinCategories( Local context = env->context(); Local result = Object::New(isolate); - // Copy from the per-process categories std::set cannot_be_required = env->builtin_loader()->GetCannotBeRequired(); std::set can_be_required =