mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
Using `assert.AssertionError()` without the `new` keyword results
in a non-intuitive error:
```js
> assert.AssertionError({})
TypeError: Cannot assign to read only property 'name' of function 'function ok(value, message) {
if (!value) fail(value, true, message, '==', assert.ok);
}'
at Function.AssertionError (assert.js:45:13)
at repl:1:8
at realRunInThisContextScript (vm.js:22:35)
at sigintHandlersWrap (vm.js:98:12)
at ContextifyScript.Script.runInThisContext (vm.js:24:12)
at REPLServer.defaultEval (repl.js:346:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.onLine (repl.js:545:10)
at emitOne (events.js:101:20)
>
```
The `assert.AssertionError()` can only be used correctly with `new`,
so this converts it into a proper ES6 class that will give an
appropriate error message.
This also associates the appropriate internal/errors code with all
`assert.AssertionError` instances and updates the appropriate test
cases.
PR-URL: https://github.com/nodejs/node/pull/12651
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
16 lines
490 B
Plaintext
16 lines
490 B
Plaintext
Exiting with code=1
|
|
assert.js:*
|
|
throw new AssertionError({
|
|
^
|
|
|
|
AssertionError [ERR_ASSERTION]: 1 === 2
|
|
at Object.<anonymous> (*test*message*error_exit.js:*:*)
|
|
at Module._compile (module.js:*:*)
|
|
at Object.Module._extensions..js (module.js:*:*)
|
|
at Module.load (module.js:*:*)
|
|
at tryModuleLoad (module.js:*:*)
|
|
at Function.Module._load (module.js:*:*)
|
|
at Function.Module.runMain (module.js:*:*)
|
|
at startup (bootstrap_node.js:*:*)
|
|
at bootstrap_node.js:*:*
|