mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
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>
This commit is contained in:
1 parent
330349f706
commit
76340e3f10
56 files changed
+301
-244
No files matched your search
@@ -5,6 +5,13 @@ const common = require('../common');
|
||||
const errors = require('internal/errors');
|
||||
const assert = require('assert');
|
||||
|
||||
const errMessages = {
|
||||
objectString: /^'object' === 'string'$/,
|
||||
booleanString: /^'boolean' === 'string'$/,
|
||||
numberString: /^'number' === 'string'$/,
|
||||
invalidKey: /^An invalid error message key was used: TEST_FOO_KEY\.$/,
|
||||
};
|
||||
|
||||
errors.E('TEST_ERROR_1', 'Error for testing purposes: %s');
|
||||
errors.E('TEST_ERROR_2', (a, b) => `${a} ${b}`);
|
||||
|
||||
@@ -43,86 +50,86 @@ assert.throws(
|
||||
() => new errors.Error('TEST_FOO_KEY'),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^An invalid error message key was used: TEST_FOO_KEY\.$/
|
||||
message: errMessages.invalidKey
|
||||
}));
|
||||
// Calling it twice yields same result (using the key does not create it)
|
||||
assert.throws(
|
||||
() => new errors.Error('TEST_FOO_KEY'),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^An invalid error message key was used: TEST_FOO_KEY\.$/
|
||||
message: errMessages.invalidKey
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.Error(1),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'number' === 'string'$/
|
||||
message: errMessages.numberString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.Error({}),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.Error([]),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.Error(true),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'boolean' === 'string'$/
|
||||
message: errMessages.booleanString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.TypeError(1),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'number' === 'string'$/
|
||||
message: errMessages.numberString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.TypeError({}),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.TypeError([]),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.TypeError(true),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'boolean' === 'string'$/
|
||||
message: errMessages.booleanString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.RangeError(1),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'number' === 'string'$/
|
||||
message: errMessages.numberString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.RangeError({}),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.RangeError([]),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'object' === 'string'$/
|
||||
message: errMessages.objectString
|
||||
}));
|
||||
assert.throws(
|
||||
() => new errors.RangeError(true),
|
||||
common.expectsError({
|
||||
code: 'ERR_ASSERTION',
|
||||
message: /^'boolean' === 'string'$/
|
||||
message: errMessages.booleanString
|
||||
}));
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user