summaryrefslogtreecommitdiff
path: root/test/parallel/test-util-inspect.js
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-03-09 15:03:44 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-03-25 03:21:27 +0200
commit1029dd36861d7ab592d4e219362706d2c161839a (patch)
treee9dc8ed32ab7812c537712967b5c634d8f1bfc11 /test/parallel/test-util-inspect.js
parent0fbd4b1d021ed5fcd95210047a9e1d2addefe51a (diff)
downloadandroid-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.js48
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);
+}