Skip to content

Commit e61b38e

Browse files
aduh95RafaelGSS
authored andcommitted
benchmark: disambiguate filename and dirname read perf
PR-URL: #58056 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent d5783af commit e61b38e

File tree

4 files changed

+16
-9
lines changed

4 files changed

+16
-9
lines changed

benchmark/esm/import-meta.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
11
'use strict';
22

33
const path = require('path');
4-
const { pathToFileURL, fileURLToPath } = require('url');
4+
const { pathToFileURL } = require('url');
55
const common = require('../common');
66
const assert = require('assert');
77
const bench = common.createBenchmark(main, {
88
n: [1000],
9+
valuesToRead: [
10+
'dirname-and-filename',
11+
'dirname',
12+
'filename',
13+
],
914
});
1015

11-
const file = pathToFileURL(
12-
path.resolve(__filename, '../../fixtures/esm-dir-file.mjs'),
13-
);
14-
async function load(array, n) {
16+
const fixtureDir = path.resolve(__filename, '../../fixtures');
17+
const fixtureDirURL = pathToFileURL(fixtureDir);
18+
async function load(array, n, valuesToRead) {
1519
for (let i = 0; i < n; i++) {
16-
array[i] = await import(`${file}?i=${i}`);
20+
array[i] = await import(`${fixtureDirURL}/import-meta-${valuesToRead}.mjs?i=${i}`);
1721
}
1822
return array;
1923
}
2024

21-
function main({ n }) {
25+
function main({ n, valuesToRead }) {
2226
const array = [];
2327
for (let i = 0; i < n; ++i) {
2428
array.push({ dirname: '', filename: '', i: 0 });
2529
}
2630

2731
bench.start();
28-
load(array, n).then((arr) => {
32+
load(array, n, valuesToRead).then((arr) => {
2933
bench.end(n);
30-
assert.strictEqual(arr[n - 1].filename, fileURLToPath(file));
34+
if (valuesToRead.includes('dirname')) assert.strictEqual(arr[n - 1].dirname, fixtureDir);
35+
if (valuesToRead.includes('filename')) assert.strictEqual(arr[n - 1].filename, path.join(fixtureDir, `import-meta-${valuesToRead}.mjs`));
3136
});
3237
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const dirname = import.meta.dirname;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const filename = import.meta.filename;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy