summaryrefslogtreecommitdiff
path: root/lib/internal/util
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-04-22 06:13:16 +0200
committerDaniel Bevenius <daniel.bevenius@gmail.com>2019-04-25 08:27:03 +0200
commit2f1add18a469c7fc120df30b5c4e674eeb9f9724 (patch)
treecce7066fad6efe93a754aa46559c623e40e97da7 /lib/internal/util
parent80c0b89bbbed26eca955f4f70922fa288b664c68 (diff)
downloadandroid-node-v8-2f1add18a469c7fc120df30b5c4e674eeb9f9724.tar.gz
android-node-v8-2f1add18a469c7fc120df30b5c4e674eeb9f9724.tar.bz2
android-node-v8-2f1add18a469c7fc120df30b5c4e674eeb9f9724.zip
util: improve `Symbol.toStringTag` handling
Only special handle `Symbol.toStringTag` if the property is not enumerable or not the own property of the inspected object. PR-URL: https://github.com/nodejs/node/pull/27342 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'lib/internal/util')
-rw-r--r--lib/internal/util/inspect.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js
index db54e232aa..d20c7b93c9 100644
--- a/lib/internal/util/inspect.js
+++ b/lib/internal/util/inspect.js
@@ -574,8 +574,15 @@ function formatRaw(ctx, value, recurseTimes, typedArray) {
const constructor = getConstructorName(value, ctx);
let tag = value[Symbol.toStringTag];
- if (typeof tag !== 'string')
+ // Only list the tag in case it's non-enumerable / not an own property.
+ // Otherwise we'd print this twice.
+ if (typeof tag !== 'string' ||
+ tag !== '' &&
+ (ctx.showHidden ? hasOwnProperty : propertyIsEnumerable)(
+ value, Symbol.toStringTag
+ )) {
tag = '';
+ }
let base = '';
let formatter = getEmptyFormatArray;
let braces;