summaryrefslogtreecommitdiff
path: root/lib/internal/modules/esm/loader.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/internal/modules/esm/loader.js')
-rw-r--r--lib/internal/modules/esm/loader.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js
index a62529e9b3..875fb97f91 100644
--- a/lib/internal/modules/esm/loader.js
+++ b/lib/internal/modules/esm/loader.js
@@ -22,6 +22,7 @@ const createDynamicModule = require(
'internal/modules/esm/create_dynamic_module');
const { translators } = require('internal/modules/esm/translators');
const { ModuleWrap } = internalBinding('module_wrap');
+const { getOptionValue } = require('internal/options');
const debug = require('internal/util/debuglog').debuglog('esm');
@@ -118,7 +119,7 @@ class Loader {
url = pathToFileURL(`${process.cwd()}/[eval${++this.evalIndex}]`).href
) {
const evalInstance = (url) => new ModuleWrap(url, undefined, source, 0, 0);
- const job = new ModuleJob(this, url, evalInstance, false);
+ const job = new ModuleJob(this, url, evalInstance, false, false);
this.moduleMap.set(url, job);
const { module, result } = await job.run();
return {
@@ -146,6 +147,9 @@ class Loader {
async getModuleJob(specifier, parentURL) {
const { url, format } = await this.resolve(specifier, parentURL);
let job = this.moduleMap.get(url);
+ // CommonJS will set functions for lazy job evaluation.
+ if (typeof job === 'function')
+ this.moduleMap.set(url, job = job());
if (job !== undefined)
return job;
@@ -169,7 +173,10 @@ class Loader {
loaderInstance = translators.get(format);
}
- job = new ModuleJob(this, url, loaderInstance, parentURL === undefined);
+ const inspectBrk = parentURL === undefined &&
+ format === 'module' && getOptionValue('--inspect-brk');
+ job = new ModuleJob(this, url, loaderInstance, parentURL === undefined,
+ inspectBrk);
this.moduleMap.set(url, job);
return job;
}