Skip to content

Commit

Permalink
Fixup early cjs module loading
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere committed Feb 21, 2020
1 parent ba7ffac commit 0a61d3c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
1 change: 1 addition & 0 deletions patches/node/.patches
Expand Up @@ -38,3 +38,4 @@ fix_ensure_clocks_header_included_in_impl.patch
fix_remove_implicit_type_conversions.patch
fix_include_io_h_in_uvwasi_for_win.patch
fix_--perf-prof_only_works_on_linux.patch
fix_we_need_to_eager-load_cjs_modules.patch
36 changes: 36 additions & 0 deletions patches/node/fix_we_need_to_eager-load_cjs_modules.patch
@@ -0,0 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shelley Vohr <shelley.vohr@gmail.com>
Date: Thu, 20 Feb 2020 19:04:18 -0800
Subject: fix: we need to eager-load cjs modules

Node.js added a check to prevent commonjs modules being loaded before prepareMainThreadExecution,
but Electron needs to do that in our asar logic in order to override child_process. I plan to
either tweak this logic and upstream it to Nodejs, or to find an alternate approach in Electron
for overriding the child_process apis.

diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js
index 35ad9ee1a685177894bb5c13c58c16af2ccee362..865ade2b6917321e16ef3b5f12121e8bfcc25b07 100644
--- a/lib/internal/bootstrap/pre_execution.js
+++ b/lib/internal/bootstrap/pre_execution.js
@@ -64,7 +64,7 @@ function prepareMainThreadExecution(expandArgv1 = false) {
initializeESMLoader();

const CJSLoader = require('internal/modules/cjs/loader');
- assert(!CJSLoader.hasLoadedAnyUserCJSModule);
+ // assert(!CJSLoader.hasLoadedAnyUserCJSModule);
loadPreloadModules();
initializeFrozenIntrinsics();
setupAsarSupport();
diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js
index 56ccd9df5e9b539297856a31691f577a5ab56bf0..abc1efcef3822c84f5f70ed64e1e9a80a16be98c 100644
--- a/lib/internal/main/worker_thread.js
+++ b/lib/internal/main/worker_thread.js
@@ -115,7 +115,7 @@ port.on('message', (message) => {
initializeESMLoader();

const CJSLoader = require('internal/modules/cjs/loader');
- assert(!CJSLoader.hasLoadedAnyUserCJSModule);
+ // assert(!CJSLoader.hasLoadedAnyUserCJSModule);
loadPreloadModules();
initializeFrozenIntrinsics();
if (argv !== undefined) {

0 comments on commit 0a61d3c

Please sign in to comment.