diff options
author | Anna Henningsen <anna@addaleax.net> | 2017-03-31 22:35:54 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-04-03 10:08:26 +0200 |
commit | 3cc3e099be79274a188b2ce32f9cabddfc58ea8d (patch) | |
tree | 1752dfd73010f4d84c3f2bb3b2912e31b9e7a7f4 | |
parent | 91383e47fdbb87ae45365396dd0150dcad8ed967 (diff) | |
download | android-node-v8-3cc3e099be79274a188b2ce32f9cabddfc58ea8d.tar.gz android-node-v8-3cc3e099be79274a188b2ce32f9cabddfc58ea8d.tar.bz2 android-node-v8-3cc3e099be79274a188b2ce32f9cabddfc58ea8d.zip |
util: show External values explicitly in inspect
Display `v8::External` values as `[External]` rather than `{}`
which makes them look like objects.
PR-URL: https://github.com/nodejs/node/pull/12151
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
-rw-r--r-- | lib/util.js | 3 | ||||
-rw-r--r-- | src/node_util.cc | 1 | ||||
-rw-r--r-- | test/parallel/test-util-inspect.js | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/lib/util.js b/lib/util.js index 8567f8dbaa..a0e8bb3c1d 100644 --- a/lib/util.js +++ b/lib/util.js @@ -466,6 +466,9 @@ function formatValue(ctx, value, recurseTimes) { return `${constructor.name}` + ` { byteLength: ${formatNumber(ctx, value.byteLength)} }`; } + if (binding.isExternal(value)) { + return ctx.stylize('[External]', 'special'); + } } var base = ''; diff --git a/src/node_util.cc b/src/node_util.cc index 8279a787d7..813995de79 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -22,6 +22,7 @@ using v8::Value; V(isArrayBuffer, IsArrayBuffer) \ V(isDataView, IsDataView) \ V(isDate, IsDate) \ + V(isExternal, IsExternal) \ V(isMap, IsMap) \ V(isMapIterator, IsMapIterator) \ V(isPromise, IsPromise) \ diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 32e36135ef..ab4964f9e7 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -82,6 +82,9 @@ assert.strictEqual(util.inspect(Object.assign(new String('hello'), { [Symbol('foo')]: 123 }), { showHidden: true }), '{ [String: \'hello\'] [length]: 5, [Symbol(foo)]: 123 }'); +assert.strictEqual(util.inspect(process.stdin._handle._externalStream), + '[External]'); + { const regexp = /regexp/; regexp.aprop = 42; |