From 5d6512e284064e3773ec534eac4c869eb9ffeb6e Mon Sep 17 00:00:00 2001 From: Bradley Farias Date: Mon, 20 Nov 2017 10:49:54 -0600 Subject: [PATCH 1/2] module: be lazy when creating CJS facades This should remove the penalty for loading CJS that is never imported. --- lib/module.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/module.js b/lib/module.js index cc8d5097bb83b2..1075a5964e15ba 100644 --- a/lib/module.js +++ b/lib/module.js @@ -566,15 +566,20 @@ Module.prototype.load = function(filename) { if (ESMLoader) { const url = getURLFromFilePath(filename); const urlString = `${url}`; + const exports = this.exports; if (ESMLoader.moduleMap.has(urlString) !== true) { - const ctx = createDynamicModule(['default'], url); - ctx.reflect.exports.default.set(this.exports); ESMLoader.moduleMap.set(urlString, - new ModuleJob(ESMLoader, url, async () => ctx)); + new ModuleJob(ESMLoader, url, async () => { + const ctx = createDynamicModule( + ['default'], url); + ctx.reflect.exports.default.set(exports); + return ctx; + }) + ); } else { const job = ESMLoader.moduleMap.get(urlString); if (job.reflect) - job.reflect.exports.default.set(this.exports); + job.reflect.exports.default.set(exports); } } }; From 6d32daf40028465d6c2eb30d4cf3c14a1f49bbcd Mon Sep 17 00:00:00 2001 From: Bradley Farias Date: Mon, 20 Nov 2017 14:05:20 -0600 Subject: [PATCH 2/2] style nit --- lib/module.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/module.js b/lib/module.js index 1075a5964e15ba..fcdb94d1165a3d 100644 --- a/lib/module.js +++ b/lib/module.js @@ -568,8 +568,9 @@ Module.prototype.load = function(filename) { const urlString = `${url}`; const exports = this.exports; if (ESMLoader.moduleMap.has(urlString) !== true) { - ESMLoader.moduleMap.set(urlString, - new ModuleJob(ESMLoader, url, async () => { + ESMLoader.moduleMap.set( + urlString, + new ModuleJob(ESMLoader, url, async () => { const ctx = createDynamicModule( ['default'], url); ctx.reflect.exports.default.set(exports);