diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index a7252c1c99f954..a59e8f9373f42b 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -85,7 +85,7 @@ translators.set('module', async function moduleStrategy(url) { source, { url, format: 'module' }, defaultTransformSource)); maybeCacheSourceMap(url, source); debug(`Translating StandardModule ${url}`); - const module = new ModuleWrap(url, undefined, source, 0, 0); + const module = new ModuleWrap(url, undefined, `${source}`, 0, 0); moduleWrap.callbackMap.set(module, { initializeImportMeta, importModuleDynamically, diff --git a/test/fixtures/es-module-loaders/loader-invalid-transform-source.mjs b/test/fixtures/es-module-loaders/loader-invalid-transform-source.mjs new file mode 100644 index 00000000000000..9a095cf2df1ac3 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-invalid-transform-source.mjs @@ -0,0 +1,7 @@ +export function transformSource() { + return { + source: { + boom: true + } + }; +} diff --git a/test/message/esm-invalid-transform-source.mjs b/test/message/esm-invalid-transform-source.mjs new file mode 100644 index 00000000000000..4436e8290f1cf9 --- /dev/null +++ b/test/message/esm-invalid-transform-source.mjs @@ -0,0 +1,4 @@ +// Flags: --experimental-loader ./test/fixtures/es-module-loaders/loader-invalid-transform-source.mjs +// Fixes: https://github.com/nodejs/node/issues/33441 +import '../common/index.mjs'; +import 'fs'; diff --git a/test/message/esm-invalid-transform-source.out b/test/message/esm-invalid-transform-source.out new file mode 100644 index 00000000000000..a16c5ece5c4c79 --- /dev/null +++ b/test/message/esm-invalid-transform-source.out @@ -0,0 +1,9 @@ +(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time +(Use `node --trace-warnings ...` to show where the warning was created) +file:///*/test/message/esm-invalid-transform-source.mjs:1 +[object Object] + ^^^^^^ + +SyntaxError: Unexpected identifier + at Loader.moduleStrategy (internal/modules/esm/translators.js:*:*) + at async link (internal/modules/esm/module_job.js:*:*)