mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
src: split up InitializeContext
This splits out code from InitializeContext into a new function InitializeContextForSnapshot and moves the callsite of InitializeContextRuntime from NewContext to InitializeContext - embedders don't necessarily call NewContext and so need to be able to guarantee these functions are called regardless. PR-URL: https://github.com/nodejs/node/pull/30067 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
@@ -361,6 +361,9 @@ MaybeLocal<Object> GetPerContextExports(Local<Context> context) {
|
||||
return handle_scope.Escape(exports);
|
||||
}
|
||||
|
||||
// Any initialization logic should be performed in
|
||||
// InitializeContext, because embedders don't necessarily
|
||||
// call NewContext and so they will experience breakages.
|
||||
Local<Context> NewContext(Isolate* isolate,
|
||||
Local<ObjectTemplate> object_template) {
|
||||
auto context = Context::New(isolate, nullptr, object_template);
|
||||
@@ -370,8 +373,6 @@ Local<Context> NewContext(Isolate* isolate,
|
||||
return Local<Context>();
|
||||
}
|
||||
|
||||
InitializeContextRuntime(context);
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
@@ -405,7 +406,7 @@ void InitializeContextRuntime(Local<Context> context) {
|
||||
}
|
||||
}
|
||||
|
||||
bool InitializeContext(Local<Context> context) {
|
||||
bool InitializeContextForSnapshot(Local<Context> context) {
|
||||
Isolate* isolate = context->GetIsolate();
|
||||
HandleScope handle_scope(isolate);
|
||||
|
||||
@@ -459,6 +460,15 @@ bool InitializeContext(Local<Context> context) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool InitializeContext(Local<Context> context) {
|
||||
if (!InitializeContextForSnapshot(context)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
InitializeContextRuntime(context);
|
||||
return true;
|
||||
}
|
||||
|
||||
uv_loop_t* GetCurrentEventLoop(Isolate* isolate) {
|
||||
HandleScope handle_scope(isolate);
|
||||
Local<Context> context = isolate->GetCurrentContext();
|
||||
|
||||
Reference in New Issue
Block a user