|  | 
| 1 | 1 | 'use strict'; | 
| 2 | 2 | 
 | 
| 3 | 3 | const path = require('path'); | 
| 4 |  | -const { pathToFileURL, fileURLToPath } = require('url'); | 
|  | 4 | +const { pathToFileURL } = require('url'); | 
| 5 | 5 | const common = require('../common'); | 
| 6 | 6 | const assert = require('assert'); | 
| 7 | 7 | const bench = common.createBenchmark(main, { | 
| 8 | 8 |   n: [1000], | 
|  | 9 | +  valuesToRead: [ | 
|  | 10 | +    'dirname-and-filename', | 
|  | 11 | +    'dirname', | 
|  | 12 | +    'filename', | 
|  | 13 | +  ], | 
| 9 | 14 | }); | 
| 10 | 15 | 
 | 
| 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) { | 
| 15 | 19 |   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}`); | 
| 17 | 21 |   } | 
| 18 | 22 |   return array; | 
| 19 | 23 | } | 
| 20 | 24 | 
 | 
| 21 |  | -function main({ n }) { | 
|  | 25 | +function main({ n, valuesToRead }) { | 
| 22 | 26 |   const array = []; | 
| 23 | 27 |   for (let i = 0; i < n; ++i) { | 
| 24 | 28 |     array.push({ dirname: '', filename: '', i: 0 }); | 
| 25 | 29 |   } | 
| 26 | 30 | 
 | 
| 27 | 31 |   bench.start(); | 
| 28 |  | -  load(array, n).then((arr) => { | 
|  | 32 | +  load(array, n, valuesToRead).then((arr) => { | 
| 29 | 33 |     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`)); | 
| 31 | 36 |   }); | 
| 32 | 37 | } | 
0 commit comments