Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Bedford <guybedford@gmail.com>2020-10-10 14:08:58 +0300
committerGuy Bedford <guybedford@gmail.com>2020-10-12 14:24:41 +0300
commitf3ce2811ddae10808615f0314b789e2efe5eb3ce (patch)
treee9ae4ee955103a1d19b2e2fecd0220d24ad6d06d /benchmark
parent2d83e743d934738a3ad26ed587eb7cfd6ca46081 (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.js40
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();
+}