diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-03-16 12:09:14 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-03-23 02:55:54 +0100 |
commit | 1ed3c54ecbd72a33693e5954f86bcc9fd9b1cc09 (patch) | |
tree | b708974383e0c32b07b1c1525b10ba8426307737 /lib/internal/assert/assertion_error.js | |
parent | c757cb1b9870de9297df736d5e831b7eb627644a (diff) | |
download | android-node-v8-1ed3c54ecbd72a33693e5954f86bcc9fd9b1cc09.tar.gz android-node-v8-1ed3c54ecbd72a33693e5954f86bcc9fd9b1cc09.tar.bz2 android-node-v8-1ed3c54ecbd72a33693e5954f86bcc9fd9b1cc09.zip |
errors: update error name
This updates all Node.js errors by removing the `code` being part
of the `name` property. Instead, the name is just changed once on
instantiation, the stack is accessed to create the stack as expected
and then the `name` property is set back to it's original form.
PR-URL: https://github.com/nodejs/node/pull/26738
Fixes: https://github.com/nodejs/node/issues/26669
Fixes: https://github.com/nodejs/node/issues/20253
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'lib/internal/assert/assertion_error.js')
-rw-r--r-- | lib/internal/assert/assertion_error.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/internal/assert/assertion_error.js b/lib/internal/assert/assertion_error.js index a13a610da1..ded5ef00c9 100644 --- a/lib/internal/assert/assertion_error.js +++ b/lib/internal/assert/assertion_error.js @@ -388,12 +388,25 @@ class AssertionError extends Error { } this.generatedMessage = !message; - this.name = 'AssertionError [ERR_ASSERTION]'; + Object.defineProperty(this, 'name', { + value: 'AssertionError [ERR_ASSERTION]', + enumerable: false, + writable: true, + configurable: true + }); this.code = 'ERR_ASSERTION'; this.actual = actual; this.expected = expected; this.operator = operator; Error.captureStackTrace(this, stackStartFn); + // Create error message including the error code in the name. + this.stack; + // Reset the name. + this.name = 'AssertionError'; + } + + toString() { + return `${this.name} [${this.code}]: ${this.message}`; } [inspect.custom](recurseTimes, ctx) { |