diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc index 1d93f846a1a981..ee00a9b1c759e4 100644 --- a/src/node_snapshotable.cc +++ b/src/node_snapshotable.cc @@ -975,21 +975,8 @@ ExitCode BuildSnapshotWithoutCodeCache( ExitCode BuildCodeCacheFromSnapshot(SnapshotData* out, const std::vector& args, const std::vector& exec_args) { - std::vector errors; - auto data_wrapper = out->AsEmbedderWrapper(); - auto setup = CommonEnvironmentSetup::CreateFromSnapshot( - per_process::v8_platform.Platform(), - &errors, - data_wrapper.get(), - args, - exec_args); - if (!setup) { - for (const auto& err : errors) - fprintf(stderr, "%s: %s\n", args[0].c_str(), err.c_str()); - return ExitCode::kBootstrapFailure; - } - - Isolate* isolate = setup->isolate(); + RAIIIsolate raii_isolate(out); + Isolate* isolate = raii_isolate.get(); v8::Locker locker(isolate); Isolate::Scope isolate_scope(isolate); HandleScope handle_scope(isolate); @@ -1002,12 +989,14 @@ ExitCode BuildCodeCacheFromSnapshot(SnapshotData* out, } }); - Environment* env = setup->env(); + Local context = Context::New(isolate); + Context::Scope context_scope(context); + builtins::BuiltinLoader builtin_loader; // Regenerate all the code cache. - if (!env->builtin_loader()->CompileAllBuiltins(setup->context())) { + if (!builtin_loader.CompileAllBuiltins(context)) { return ExitCode::kGenericUserError; } - env->builtin_loader()->CopyCodeCache(&(out->code_cache)); + builtin_loader.CopyCodeCache(&(out->code_cache)); if (per_process::enabled_debug_list.enabled(DebugCategory::MKSNAPSHOT)) { for (const auto& item : out->code_cache) { std::string size_str = FormatSize(item.data.length);