diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-04-22 06:13:16 +0200 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2019-04-25 08:27:03 +0200 |
commit | 2f1add18a469c7fc120df30b5c4e674eeb9f9724 (patch) | |
tree | cce7066fad6efe93a754aa46559c623e40e97da7 /lib/internal/util | |
parent | 80c0b89bbbed26eca955f4f70922fa288b664c68 (diff) | |
download | android-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.js | 9 |
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; |