Skip to content

Commit 1160d61

Browse files
cjihrigMylesBorins
authored andcommitted
assert: support symbols as assertion messages
Currently, assertion messages are implicitly converted to strings, which causes symbols to throw. This commit adds an explicit string conversion. PR-URL: #20693 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 0d28b4b commit 1160d61

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/internal/assert.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ class AssertionError extends Error {
196196
} = options;
197197

198198
if (message != null) {
199-
super(message);
199+
super(String(message));
200200
} else {
201201
if (process.stdout.isTTY) {
202202
// Reset on each call to make sure we handle dynamically set environment

test/parallel/test-assert.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,16 @@ common.expectsError(
640640
}
641641
);
642642

643+
common.expectsError(
644+
() => assert(false, Symbol('foo')),
645+
{
646+
code: 'ERR_ASSERTION',
647+
type: assert.AssertionError,
648+
generatedMessage: false,
649+
message: 'Symbol(foo)'
650+
}
651+
);
652+
643653
{
644654
// Test caching.
645655
const fs = process.binding('fs');

0 commit comments

Comments
 (0)