2019-10-23 16:25:14 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
|
|
Date: Tue, 22 Oct 2019 11:00:01 -0700
|
|
|
|
Subject: fix: call InitializeContextRuntime in InitializeContext
|
|
|
|
|
2019-12-13 17:18:45 +00:00
|
|
|
Since https://github.com/nodejs/node/commit/1ec4154e507ba71d7aefca0a6e5c155be34e989a,
|
|
|
|
we observed a crash in renderer process initialization becuase we don't
|
|
|
|
directly call NewContext, and so InitializeContext would not create primordials
|
|
|
|
correctly and the following error would occur:
|
|
|
|
|
|
|
|
node::Environment::CreateProperties(): Assertion `primordials->IsObject()' failed.
|
|
|
|
|
|
|
|
This fixes that. See https://github.com/electron/electron/pull/20684.
|
2019-10-23 16:25:14 +00:00
|
|
|
|
|
|
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
|
|
|
index 50886f4a998f1e7f346a6b7fad91ce49c3a7cdff..6ec07527ad7a806f889d884507e9def1cf68b4c8 100644
|
|
|
|
--- a/src/api/environment.cc
|
|
|
|
+++ b/src/api/environment.cc
|
|
|
|
@@ -371,8 +371,6 @@ Local<Context> NewContext(Isolate* isolate,
|
|
|
|
return Local<Context>();
|
|
|
|
}
|
|
|
|
|
|
|
|
- InitializeContextRuntime(context);
|
|
|
|
-
|
|
|
|
return context;
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -457,6 +455,11 @@ bool InitializeContext(Local<Context> context) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // This must be called here because embedders don't necessarily run
|
|
|
|
+ // NewContext, so when InitializeContext is called this might never
|
|
|
|
+ // otherwise be called
|
|
|
|
+ InitializeContextRuntime(context);
|
|
|
|
+
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|