GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — module: load ESM helpers eagerly in the snapshot · nodejs/node@a53b51d

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • lib/internal/modules/esm
    • loader.js
  • test/parallel
    • test-bootstrap-modules.js
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎lib/internal/modules/esm/loader.js‎

Copy file name to clipboardExpand all lines: lib/internal/modules/esm/loader.js
+4-24Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ const {
1414
hardenRegExp,
1515
} = primordials;
1616

17-
17+
const { LoadCache, ResolveCache } = require('internal/modules/esm/module_map');
18+
const { ModuleJob, ModuleJobSync } = require('internal/modules/esm/module_job');
1819
// This is needed to avoid cycles in esm/resolve <-> cjs/loader
1920
const {
2021
kIsExecuting,
@@ -81,24 +82,6 @@ const { isPromise } = require('internal/util/types');
8182
* @typedef {import('url').URL} URL
8283
*/
8384

84-
/**
85-
* Lazy loads the module_map module and returns a new instance of ResolveCache.
86-
* @returns {import('./module_map.js').ResolveCache}
87-
*/
88-
function newResolveCache() {
89-
const { ResolveCache } = require('internal/modules/esm/module_map');
90-
return new ResolveCache();
91-
}
92-
93-
/**
94-
* Generate a load cache (to store the final result of a load-chain for a particular module).
95-
* @returns {import('./module_map.js').LoadCache}
96-
*/
97-
function newLoadCache() {
98-
const { LoadCache } = require('internal/modules/esm/module_map');
99-
return new LoadCache();
100-
}
101-
10285
const { translators } = require('internal/modules/esm/translators');
10386
const { defaultResolve } = require('internal/modules/esm/resolve');
10487
const { defaultLoadSync, throwUnknownModuleFormat } = require('internal/modules/esm/load');
@@ -157,12 +140,12 @@ class ModuleLoader {
157140
/**
158141
* Registry of resolved specifiers
159142
*/
160-
#resolveCache = newResolveCache();
143+
#resolveCache = new ResolveCache();
161144

162145
/**
163146
* Registry of loaded modules, akin to `require.cache`
164147
*/
165-
loadCache = newLoadCache();
148+
loadCache = new LoadCache();
166149

167150
/**
168151
* @see {AsyncLoaderHooks.isForAsyncLoaderHookWorker}
@@ -235,7 +218,6 @@ class ModuleLoader {
235218
* @returns {Promise<object>} The module object.
236219
*/
237220
async executeModuleJob(url, wrap, isEntryPoint = false) {
238-
const { ModuleJob } = require('internal/modules/esm/module_job');
239221
const module = await onImport.tracePromise(async () => {
240222
const job = new ModuleJob(this, url, undefined, wrap, kEvaluationPhase, false, false, kImportInImportedESM);
241223
this.loadCache.set(url, undefined, job);
@@ -354,7 +336,6 @@ class ModuleLoader {
354336
const wrap = compileSourceTextModule(url, source, this);
355337
const inspectBrk = (isMain && getOptionValue('--inspect-brk'));
356338

357-
const { ModuleJobSync } = require('internal/modules/esm/module_job');
358339
job = new ModuleJobSync(this, url, kEmptyObject, wrap, kEvaluationPhase, isMain, inspectBrk,
359340
kImportInRequiredESM);
360341
this.loadCache.set(url, kImplicitTypeAttribute, job);
@@ -584,7 +565,6 @@ class ModuleLoader {
584565
assert(moduleOrModulePromise instanceof ModuleWrap, `Expected ModuleWrap for loading ${url}`);
585566
}
586567

587-
const { ModuleJob, ModuleJobSync } = require('internal/modules/esm/module_job');
588568
// TODO(joyeecheung): use ModuleJobSync for kRequireInImportedCJS too.
589569
const ModuleJobCtor = (requestType === kImportInRequiredESM ? ModuleJobSync : ModuleJob);
590570
const isMain = (parentURL === undefined);
Collapse file

‎test/parallel/test-bootstrap-modules.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-bootstrap-modules.js
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ if (isMainThread) {
133133
'NativeModule internal/modules/esm/load',
134134
'NativeModule internal/modules/esm/resolve',
135135
'NativeModule internal/modules/esm/translators',
136+
'NativeModule internal/modules/esm/module_job',
137+
'NativeModule internal/modules/esm/module_map',
136138
'NativeModule url',
137139
].forEach(expected.beforePreExec.add.bind(expected.beforePreExec));
138140
} else { // Worker.

0 commit comments

Comments
0 (0)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.