Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
move setCallbackForWrap back into translator('module')
  • Loading branch information
JakobJingleheimer committed Jun 18, 2023
commit ec5d529d899c9252525f2874bc636e5a89ef0403
4 changes: 2 additions & 2 deletions lib/internal/modules/esm/initialize_import_meta.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function createImportMetaResolve(defaultParentUrl) {
const moduleLoader = require('internal/process/esm_loader').esmLoader;
let url;

debug('import.meta.resolve(%o) "%s"', { specifier, parentUrl }, moduleLoader.constructor.name);
debug('import.meta.resolve(%o) %s', { specifier, parentUrl }, moduleLoader.constructor.name);

try {
({ url } = moduleLoader.resolve(specifier, parentUrl));
Expand All @@ -41,7 +41,7 @@ function createImportMetaResolve(defaultParentUrl) {
* @returns {{url: string, resolve?: Function}}
*/
function initializeImportMeta(meta, { url }) {
debug('initializeImportMeta(): %o', { [url]: moduleLoader.constructor.name })
debug('initializeImportMeta for %s', url);

// Alphabetical
if (experimentalImportMetaResolve) {
Expand Down
17 changes: 0 additions & 17 deletions lib/internal/modules/esm/module_job.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ const {
} = primordials;

const { ModuleWrap } = internalBinding('module_wrap');
const { setCallbackForWrap } = require('internal/modules/esm/utils');

const { decorateErrorStack } = require('internal/util');
const {
Expand All @@ -34,7 +33,6 @@ let debug = require('internal/util/debuglog').debuglog('esm', (fn) => {
const noop = FunctionPrototype;

let hasPausedEntry = false;
let importMetaInitializer;

const CJSGlobalLike = [
'require',
Expand Down Expand Up @@ -83,21 +81,6 @@ class ModuleJob {

debug('ModuleJob::constructor(%o)', { url, importAssertions, isMain, inspectBrk });

// Expose the promise to the ModuleWrap directly for linking below.
// `this.module` is also filled in below.

setCallbackForWrap(this.modulePromise, {
initializeImportMeta(meta, wrap) {
importMetaInitializer ??= require('internal/modules/esm/initialize_import_meta').initializeImportMeta;
importMetaInitializer(meta, { url });
},
importModuleDynamically(specifier, { url }, importAssertions) {
const moduleLoader = require('internal/process/esm_loader').esmLoader;
debug('ModuleJob::importModuleDynamically(%o)', { specifier, url, moduleLoader });
return moduleLoader.import(specifier, url, importAssertions);
},
});

// Wait for the ModuleWrap instance being linked with all dependencies.
const link = async () => {
this.module = await this.modulePromise;
Expand Down
16 changes: 15 additions & 1 deletion lib/internal/modules/esm/translators.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,27 @@ function errPath(url) {
return url;
}

let importMetaInitializer;

// Strategy for loading a standard JavaScript module.
translators.set('module', async function moduleStrategy(url, source, isMain) {
assertBufferSource(source, true, 'load');
source = stringify(source);
maybeCacheSourceMap(url, source);
debug(`Translating StandardModule ${url}`);
debug(`Translating ESModule ${url}`);
const module = new ModuleWrap(url, undefined, source, 0, 0);
const { setCallbackForWrap } = require('internal/modules/esm/utils');
setCallbackForWrap(module, {
initializeImportMeta(meta, wrap) {
importMetaInitializer ??= require('internal/modules/esm/initialize_import_meta').initializeImportMeta;
importMetaInitializer(meta, { url });
},
importModuleDynamically(specifier, { url }, importAssertions) {
const moduleLoader = require('internal/process/esm_loader').esmLoader;
debug('Translator("module")::importModuleDynamically(%o)', { specifier, url, moduleLoader });
return moduleLoader.import(specifier, url, importAssertions);
},
});
return module;
});

Expand Down