summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-09-04 15:18:44 +0200
committerRuben Bridgewater <ruben@bridgewater.de>2018-09-17 15:59:12 +0200
commiteee5adfab5af5f7eb672cbc3cbbad141c455c54d (patch)
tree26b20dac6ba78ccf444010fa639db389e98a986d /lib
parentcb3d6d5113a3bb076106e2b7c35e2471744bf218 (diff)
downloadandroid-node-v8-eee5adfab5af5f7eb672cbc3cbbad141c455c54d.tar.gz
android-node-v8-eee5adfab5af5f7eb672cbc3cbbad141c455c54d.tar.bz2
android-node-v8-eee5adfab5af5f7eb672cbc3cbbad141c455c54d.zip
assert: add default operator to `assert.fail()`
This makes sure `assert.fail()` contains an operator instead of being undefined. On top of that it also fixes the `err.generatedMessage` property. Before, it was not always set correct. PR-URL: https://github.com/nodejs/node/pull/22694 Reviewed-By: John-David Dalton <john.david.dalton@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/assert.js21
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/assert.js b/lib/assert.js
index e336119d92..0f3d770358 100644
--- a/lib/assert.js
+++ b/lib/assert.js
@@ -87,8 +87,9 @@ function innerFail(obj) {
function fail(actual, expected, message, operator, stackStartFn) {
const argsLen = arguments.length;
+ let internalMessage;
if (argsLen === 0) {
- message = 'Failed';
+ internalMessage = 'Failed';
} else if (argsLen === 1) {
message = actual;
actual = undefined;
@@ -106,13 +107,23 @@ function fail(actual, expected, message, operator, stackStartFn) {
operator = '!=';
}
- innerFail({
+ if (message instanceof Error) throw message;
+
+ const errArgs = {
actual,
expected,
- message,
- operator,
+ operator: operator === undefined ? 'fail' : operator,
stackStartFn: stackStartFn || fail
- });
+ };
+ if (message !== undefined) {
+ errArgs.message = message;
+ }
+ const err = new AssertionError(errArgs);
+ if (internalMessage) {
+ err.message = internalMessage;
+ err.generatedMessage = true;
+ }
+ throw err;
}
assert.fail = fail;