From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 13 Sep 2018 08:56:07 -0700 Subject: feat: initialize asar support This patch initializies asar support in Node.js. diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index 0cad5209c4ff4e68d7c400af1d2b4c234210ddb4..918bc8c0c4e78bad5a3372e8a5522da00aa9073e 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -192,6 +192,8 @@ function nativeModuleRequire(id) { return mod.compile(); } +NativeModule.require = nativeModuleRequire + NativeModule.exists = function(id) { return NativeModule.map.has(id); }; diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 2aa2a3b46c5fc12d22e0e74e304d2d55ca02c3b5..e7bd18855fb98a822833b4366bfb595dccfc1b6f 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -61,6 +61,7 @@ function prepareMainThreadExecution(expandArgv1 = false) { initializeESMLoader(); loadPreloadModules(); initializeFrozenIntrinsics(); + setupAsarSupport(); } function patchProcessObject(expandArgv1) { @@ -444,6 +445,10 @@ function loadPreloadModules() { } } +function setupAsarSupport() { + process._linkedBinding('atom_common_asar').initAsarSupport(require); +} + module.exports = { patchProcessObject, setupCoverageHooks,