mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
76340e3f10
* 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>
36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const execFile = require('child_process').execFile;
|
|
const warnmod = require.resolve(`${common.fixturesDir}/warnings.js`);
|
|
const node = process.execPath;
|
|
|
|
const normal = [warnmod];
|
|
const noWarn = ['--no-warnings', warnmod];
|
|
const traceWarn = ['--trace-warnings', warnmod];
|
|
|
|
const warningMessage = /^\(.+\)\sWarning: a bad practice warning/;
|
|
|
|
execFile(node, normal, function(er, stdout, stderr) {
|
|
// Show Process Warnings
|
|
assert.strictEqual(er, null);
|
|
assert.strictEqual(stdout, '');
|
|
assert(warningMessage.test(stderr));
|
|
});
|
|
|
|
execFile(node, noWarn, function(er, stdout, stderr) {
|
|
// Hide Process Warnings
|
|
assert.strictEqual(er, null);
|
|
assert.strictEqual(stdout, '');
|
|
assert(!warningMessage.test(stderr));
|
|
});
|
|
|
|
execFile(node, traceWarn, function(er, stdout, stderr) {
|
|
// Show Warning Trace
|
|
assert.strictEqual(er, null);
|
|
assert.strictEqual(stdout, '');
|
|
assert(warningMessage.test(stderr));
|
|
assert(/at Object\.<anonymous>\s\(.+warnings\.js:3:9\)/.test(stderr));
|
|
});
|