summaryrefslogtreecommitdiff
path: root/lib/module.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/module.js')
-rw-r--r--lib/module.js16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/module.js b/lib/module.js
index e1279b75bc..a2d772a381 100644
--- a/lib/module.js
+++ b/lib/module.js
@@ -575,15 +575,21 @@ 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));
+ ESMLoader.moduleMap.set(
+ urlString,
+ 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);
}
}
};