• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common.js');
3const { posix } = require('path');
4
5const bench = common.createBenchmark(main, {
6  pathext: [
7    '',
8    '/',
9    '/foo',
10    '/foo/.bar.baz',
11    ['/foo/.bar.baz', '.baz'].join('|'),
12    'foo',
13    'foo/bar.',
14    ['foo/bar.', '.'].join('|'),
15    '/foo/bar/baz/asdf/quux.html',
16    ['/foo/bar/baz/asdf/quux.html', '.html'].join('|'),
17  ],
18  n: [1e5]
19});
20
21function main({ n, pathext }) {
22  let ext;
23  const extIdx = pathext.indexOf('|');
24  if (extIdx !== -1) {
25    ext = pathext.slice(extIdx + 1);
26    pathext = pathext.slice(0, extIdx);
27  }
28
29  bench.start();
30  for (let i = 0; i < n; i++) {
31    posix.basename(i % 3 === 0 ? `${pathext}${i}` : pathext, ext);
32  }
33  bench.end(n);
34}
35