diff options
author | Vse Mozhet Byt <vsemozhetbyt@gmail.com> | 2017-06-18 16:22:32 +0300 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-06-21 22:44:23 +0200 |
commit | 1f32d9ef5b7c25147b6151852111cf7c4ee6ef51 (patch) | |
tree | b9c995a35ec8d1c0b651d569996574c7b7c94d51 /test/parallel/test-path.js | |
parent | 1fe455f52549e7122b9afcf47f67ca40341cdf56 (diff) | |
download | node-new-1f32d9ef5b7c25147b6151852111cf7c4ee6ef51.tar.gz |
test: fix RegExp nits
* Remove needless RegExp flag
In fixed case, `/g` flag is needless in the boolean context.
* Remove needless RegExp capturing
Use non-capturing grouping or remove capturing completely when:
* capturing is useless per se, e.g. in test() check;
* captured groups are not used afterward at all;
* some of the later captured groups are not used afterward.
* Use test, not match/exec in boolean context
match() and exec() return a complicated object,
unneeded in a boolean context.
* Do not needlessly repeat RegExp creation
This commit takes RegExp creation out of cycles and other repetitions.
As long as the RegExp does not use /g flag and match indices,
we are safe here.
In tests, this fix hardly gives a significant performance gain,
but it increases clarity and maintainability,
reassuring some RegExps to be identical.
RegExp in functions are not taken out of their functions:
while these functions are called many times
and their RegExps are recreated with each call,
the performance gain in test cases
does not seem to be worth decreasing function self-dependency.
PR-URL: https://github.com/nodejs/node/pull/13770
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test/parallel/test-path.js')
-rw-r--r-- | test/parallel/test-path.js | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/test/parallel/test-path.js b/test/parallel/test-path.js index cdf5c4d9f5..bf2f3ceddf 100644 --- a/test/parallel/test-path.js +++ b/test/parallel/test-path.js @@ -28,6 +28,9 @@ const path = require('path'); const f = __filename; const failures = []; +const slashRE = /\//g; +const backslashRE = /\\/g; + // path.basename tests assert.strictEqual(path.basename(f), 'test-path.js'); assert.strictEqual(path.basename(f, '.js'), 'test-path'); @@ -188,7 +191,7 @@ assert.strictEqual(path.win32.dirname('foo'), '.'); let input = test[0]; let os; if (extname === path.win32.extname) { - input = input.replace(/\//g, '\\'); + input = input.replace(slashRE, '\\'); os = 'win32'; } else { os = 'posix'; @@ -345,7 +348,7 @@ joinTests.forEach((test) => { let actualAlt; let os; if (join === path.win32.join) { - actualAlt = actual.replace(/\\/g, '/'); + actualAlt = actual.replace(backslashRE, '/'); os = 'win32'; } else { os = 'posix'; @@ -451,9 +454,9 @@ resolveTests.forEach((test) => { let actualAlt; const os = resolve === path.win32.resolve ? 'win32' : 'posix'; if (resolve === path.win32.resolve && !common.isWindows) - actualAlt = actual.replace(/\\/g, '/'); + actualAlt = actual.replace(backslashRE, '/'); else if (resolve !== path.win32.resolve && common.isWindows) - actualAlt = actual.replace(/\//g, '\\'); + actualAlt = actual.replace(slashRE, '\\'); const expected = test[1]; const message = |