diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-03-09 15:03:44 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-03-25 03:21:27 +0200 |
commit | 1029dd36861d7ab592d4e219362706d2c161839a (patch) | |
tree | e9dc8ed32ab7812c537712967b5c634d8f1bfc11 /test/parallel/test-util-inspect.js | |
parent | 0fbd4b1d021ed5fcd95210047a9e1d2addefe51a (diff) | |
download | android-node-v8-1029dd36861d7ab592d4e219362706d2c161839a.tar.gz android-node-v8-1029dd36861d7ab592d4e219362706d2c161839a.tar.bz2 android-node-v8-1029dd36861d7ab592d4e219362706d2c161839a.zip |
util: show Weak(Set|Map) entries in inspect
This adds support for WeakMap and WeakSet entries in `util.inspect`.
The output is limited to a maximum entry length of `maxArrayLength`.
PR-URL: https://github.com/nodejs/node/pull/19259
Fixes: https://github.com/nodejs/node/issues/19001:
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-util-inspect.js')
-rw-r--r-- | test/parallel/test-util-inspect.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index ab27e69c18..bdf4464121 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -1351,3 +1351,51 @@ util.inspect(process); expect = '{\n a: \'12 45 78 01 34 \' +\n \'67 90 23\'\n}'; assert.strictEqual(out, expect); } + +{ // Test WeakMap + const obj = {}; + const arr = []; + const weakMap = new WeakMap([[obj, arr], [arr, obj]]); + let out = util.inspect(weakMap, { showHidden: true }); + let expect = 'WeakMap { [ [length]: 0 ] => {}, {} => [ [length]: 0 ] }'; + assert.strictEqual(out, expect); + + out = util.inspect(weakMap); + expect = 'WeakMap { [items unknown] }'; + assert.strictEqual(out, expect); + + out = util.inspect(weakMap, { maxArrayLength: 0, showHidden: true }); + expect = 'WeakMap { ... more items }'; + assert.strictEqual(out, expect); + + weakMap.extra = true; + out = util.inspect(weakMap, { maxArrayLength: 1, showHidden: true }); + // It is not possible to determine the output reliable. + expect = 'WeakMap { [ [length]: 0 ] => {}, ... more items, extra: true }'; + const expectAlt = 'WeakMap { {} => [ [length]: 0 ], ... more items, ' + + 'extra: true }'; + assert(out === expect || out === expectAlt); +} + +{ // Test WeakSet + const weakSet = new WeakSet([{}, [1]]); + let out = util.inspect(weakSet, { showHidden: true }); + let expect = 'WeakSet { [ 1, [length]: 1 ], {} }'; + assert.strictEqual(out, expect); + + out = util.inspect(weakSet); + expect = 'WeakSet { [items unknown] }'; + assert.strictEqual(out, expect); + + out = util.inspect(weakSet, { maxArrayLength: -2, showHidden: true }); + expect = 'WeakSet { ... more items }'; + assert.strictEqual(out, expect); + + weakSet.extra = true; + out = util.inspect(weakSet, { maxArrayLength: 1, showHidden: true }); + // It is not possible to determine the output reliable. + expect = 'WeakSet { {}, ... more items, extra: true }'; + const expectAlt = 'WeakSet { [ 1, [length]: 1 ], ... more items, ' + + 'extra: true }'; + assert(out === expect || out === expectAlt); +} |