diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-09-04 15:18:44 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-09-17 15:59:12 +0200 |
commit | eee5adfab5af5f7eb672cbc3cbbad141c455c54d (patch) | |
tree | 26b20dac6ba78ccf444010fa639db389e98a986d /lib | |
parent | cb3d6d5113a3bb076106e2b7c35e2471744bf218 (diff) | |
download | android-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.js | 21 |
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; |