From 354f358c1bd53da11a525fa71ad34a541a3c31ea Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Sat, 10 Oct 2020 04:08:58 -0700 Subject: [PATCH] module: use Wasm CJS lexer when available PR-URL: https://github.com/nodejs/node/pull/35583 Reviewed-By: Matteo Collina Reviewed-By: Geoffrey Booth --- benchmark/esm/cjs-parse.js | 40 +++++++++++++++++++++++++ deps/cjs-module-lexer/dist/lexer.js | 1 + deps/cjs-module-lexer/dist/lexer.mjs | 2 ++ lib/internal/modules/esm/translators.js | 20 ++++++++++++- node.gyp | 1 + test/benchmark/test-benchmark-esm.js | 7 +++++ test/parallel/test-bootstrap-modules.js | 1 - 7 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 benchmark/esm/cjs-parse.js create mode 100644 deps/cjs-module-lexer/dist/lexer.js create mode 100644 deps/cjs-module-lexer/dist/lexer.mjs create mode 100644 test/benchmark/test-benchmark-esm.js diff --git a/benchmark/esm/cjs-parse.js b/benchmark/esm/cjs-parse.js new file mode 100644 index 00000000000000..325b362a057112 --- /dev/null +++ b/benchmark/esm/cjs-parse.js @@ -0,0 +1,40 @@ +'use strict'; +const fs = require('fs'); +const path = require('path'); +const common = require('../common.js'); +const { strictEqual } = require('assert'); + +const tmpdir = require('../../test/common/tmpdir'); +const benchmarkDirectory = + path.resolve(tmpdir.path, 'benchmark-esm-parse'); + +const bench = common.createBenchmark(main, { + n: [1e2] +}); + +async function main({ n }) { + tmpdir.refresh(); + + fs.mkdirSync(benchmarkDirectory); + + let sampleSource = 'try {\n'; + for (let i = 0; i < 1000; i++) { + sampleSource += 'sample.js(() => file = /test/);\n'; + } + sampleSource += '} catch {}\nexports.p = 5;\n'; + + for (let i = 0; i < n; i++) { + const sampleFile = path.join(benchmarkDirectory, `sample${i}.js`); + fs.writeFileSync(sampleFile, sampleSource); + } + + bench.start(); + for (let i = 0; i < n; i++) { + const sampleFile = path.join(benchmarkDirectory, `sample${i}.js`); + const m = await import('file:' + sampleFile); + strictEqual(m.p, 5); + } + bench.end(n); + + tmpdir.refresh(); +} diff --git a/deps/cjs-module-lexer/dist/lexer.js b/deps/cjs-module-lexer/dist/lexer.js new file mode 100644 index 00000000000000..1efa070407f16c --- /dev/null +++ b/deps/cjs-module-lexer/dist/lexer.js @@ -0,0 +1 @@ +"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E{const A=await WebAssembly.compile((Q="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","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} \ No newline at end of file diff --git a/deps/cjs-module-lexer/dist/lexer.mjs b/deps/cjs-module-lexer/dist/lexer.mjs new file mode 100644 index 00000000000000..f3d2aadf78f486 --- /dev/null +++ b/deps/cjs-module-lexer/dist/lexer.mjs @@ -0,0 +1,2 @@ +/* cjs-module-lexer 0.4.0 */ +const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;export function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E{const A=await WebAssembly.compile((Q="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","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())} \ No newline at end of file diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index c512b44254c013..bdbac1e1a36c6f 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -56,7 +56,24 @@ const { getOptionValue } = require('internal/options'); const experimentalImportMetaResolve = getOptionValue('--experimental-import-meta-resolve'); const asyncESM = require('internal/process/esm_loader'); -const cjsParse = require('internal/deps/cjs-module-lexer/lexer'); + +let cjsParse; +async function initCJSParse() { + if (typeof WebAssembly !== 'undefined') { + const { parse, init } = + require('internal/deps/cjs-module-lexer/dist/lexer'); + await init(); + let exports; + try { + ({ exports } = parse('exports.a=1')); + if (exports.length === 1) { + cjsParse = parse; + return; + } + } catch {} + } + cjsParse = require('internal/deps/cjs-module-lexer/lexer'); +} const translators = new SafeMap(); exports.translators = translators; @@ -167,6 +184,7 @@ translators.set('commonjs', async function commonjsStrategy(url, isMain) { if (isWindows) filename = StringPrototypeReplace(filename, winSepRegEx, '\\'); + if (!cjsParse) await initCJSParse(); const { module, exportNames } = cjsPreparseModuleExports(filename); const namesWithDefault = exportNames.has('default') ? [...exportNames] : ['default', ...exportNames]; diff --git a/node.gyp b/node.gyp index 580e1d8d76b04b..48fd7a124a6961 100644 --- a/node.gyp +++ b/node.gyp @@ -250,6 +250,7 @@ 'deps/acorn-plugins/acorn-private-methods/index.js', 'deps/acorn-plugins/acorn-static-class-features/index.js', 'deps/cjs-module-lexer/lexer.js', + 'deps/cjs-module-lexer/dist/lexer.js', ], 'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)', 'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)', diff --git a/test/benchmark/test-benchmark-esm.js b/test/benchmark/test-benchmark-esm.js new file mode 100644 index 00000000000000..cd10ff9cb160de --- /dev/null +++ b/test/benchmark/test-benchmark-esm.js @@ -0,0 +1,7 @@ +'use strict'; + +require('../common'); + +const runBenchmark = require('../common/benchmark'); + +runBenchmark('esm', { NODEJS_BENCHMARK_ZERO_ALLOWED: 1 }); diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 4778128cb09ae0..e6bf26ee0ab016 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -54,7 +54,6 @@ const expectedModules = new Set([ 'NativeModule internal/modules/cjs/helpers', 'NativeModule internal/modules/cjs/loader', 'NativeModule internal/modules/esm/create_dynamic_module', - 'NativeModule internal/deps/cjs-module-lexer/lexer', 'NativeModule internal/modules/esm/get_format', 'NativeModule internal/modules/esm/get_source', 'NativeModule internal/modules/esm/loader',