benchmark: focus on import.meta intialization in import-meta benchmark · nodejs/node@d5158a0

@@ -10,28 +10,44 @@ const bench = common.createBenchmark(main, {

1010

'dirname-and-filename',

1111

'dirname',

1212

'filename',

13+

'url',

1314

],

1415

});

151616-

const fixtureDir = path.resolve(__filename, '../../fixtures');

17-

const fixtureDirURL = pathToFileURL(fixtureDir);

18-

async function load(array, n, valuesToRead) {

17+

async function load(n, fixtureFileURL) {

18+

const array = [];

1919

for (let i = 0; i < n; i++) {

20-

array[i] = await import(`${fixtureDirURL}/import-meta-${valuesToRead}.mjs?i=${i}`);

20+

array[i] = await import(`${fixtureFileURL}?i=${i}`);

2121

}

2222

return array;

2323

}

24242525

function main({ n, valuesToRead }) {

26-

const array = [];

27-

for (let i = 0; i < n; ++i) {

28-

array.push({ dirname: '', filename: '', i: 0 });

29-

}

26+

const fixtureDir = path.resolve(__filename, '../../fixtures');

27+

const fixtureFile = path.join(fixtureDir, `import-meta-${valuesToRead}.mjs`);

28+

const fixtureFileURL = pathToFileURL(fixtureFile);

302931-

bench.start();

32-

load(array, n, valuesToRead).then((arr) => {

30+

load(n, fixtureFileURL).then((array) => {

31+

const results = new Array(n);

32+

bench.start();

33+

for (let i = 0; i < n; i++) {

34+

results[i] = array[i].default();

35+

}

3336

bench.end(n);

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`));

37+38+

switch (valuesToRead) {

39+

case 'dirname-and-filename':

40+

assert.deepStrictEqual(results[n - 1], [fixtureDir, fixtureFile]);

41+

break;

42+

case 'dirname':

43+

assert.strictEqual(results[n - 1], fixtureDir);

44+

break;

45+

case 'filename':

46+

assert.strictEqual(results[n - 1], fixtureFile);

47+

break;

48+

case 'url':

49+

assert.strictEqual(results[n - 1], `${fixtureFileURL}?i=${n - 1}`);

50+

break;

51+

}

3652

});

3753

}