Skip to content

Commit 04a086a

Browse files
joyeecheungnodejs-github-bot
authored andcommitted
esm: use wasm version of cjs-module-lexer
The synchronous version has been available since 1.4.0. PR-URL: #60663 Refs: #59913 Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 275215f commit 04a086a

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

lib/internal/modules/esm/translators.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,17 @@ function getSource(url) {
7474
let cjsParse;
7575
/**
7676
* Initializes the CommonJS module lexer parser using the JavaScript version.
77-
* TODO(joyeecheung): Use `require('internal/deps/cjs-module-lexer/dist/lexer').initSync()`
78-
* when cjs-module-lexer 1.4.0 is rolled in.
7977
*/
8078
function initCJSParseSync() {
8179
if (cjsParse === undefined) {
82-
cjsParse = require('internal/deps/cjs-module-lexer/lexer').parse;
80+
if (typeof WebAssembly !== 'undefined') {
81+
const { parse, initSync } = require('internal/deps/cjs-module-lexer/dist/lexer');
82+
initSync();
83+
cjsParse = parse;
84+
} else {
85+
const { parse } = require('internal/deps/cjs-module-lexer/lexer');
86+
cjsParse = parse;
87+
}
8388
}
8489
}
8590

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Flags: --jitless
2+
3+
// Tests that importing a CJS module works in JIT-less mode (i.e. falling back to the
4+
// JS parser if WASM is not available).
5+
import '../common/index.mjs';
6+
import '../fixtures/empty.cjs';

0 commit comments

Comments
 (0)