diff options
author | Guy Bedford <guybedford@gmail.com> | 2020-10-10 14:08:58 +0300 |
---|---|---|
committer | Guy Bedford <guybedford@gmail.com> | 2020-10-12 14:24:41 +0300 |
commit | f3ce2811ddae10808615f0314b789e2efe5eb3ce (patch) | |
tree | e9ae4ee955103a1d19b2e2fecd0220d24ad6d06d /benchmark | |
parent | 2d83e743d934738a3ad26ed587eb7cfd6ca46081 (diff) |
module: use Wasm CJS lexer when available
PR-URL: https://github.com/nodejs/node/pull/35583
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/esm/cjs-parse.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/benchmark/esm/cjs-parse.js b/benchmark/esm/cjs-parse.js new file mode 100644 index 00000000000..325b362a057 --- /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(); +} |