@@ -218,9 +218,15 @@ assert.doesNotMatch(
218
218
assert . strictEqual ( util . inspect ( ab , { showHidden : true , maxArrayLength : 2 } ) ,
219
219
'ArrayBuffer { [Uint8Contents]' +
220
220
': <00 00 ... 1 more byte>, byteLength: 3 }' ) ;
221
+ assert . strictEqual ( util . inspect ( ab , { showHidden : true , maxItemLength : 2 } ) ,
222
+ 'ArrayBuffer { [Uint8Contents]' +
223
+ ': <00 00 ... 1 more byte>, byteLength: 3 }' ) ;
221
224
assert . strictEqual ( util . inspect ( ab , { showHidden : true , maxArrayLength : 1 } ) ,
222
225
'ArrayBuffer { [Uint8Contents]' +
223
226
': <00 ... 2 more bytes>, byteLength: 3 }' ) ;
227
+ assert . strictEqual ( util . inspect ( ab , { showHidden : true , maxItemLength : 1 } ) ,
228
+ 'ArrayBuffer { [Uint8Contents]' +
229
+ ': <00 ... 2 more bytes>, byteLength: 3 }' ) ;
224
230
}
225
231
226
232
// Now do the same checks but from a different context.
@@ -571,10 +577,17 @@ assert.strictEqual(util.inspect(-5e-324), '-5e-324');
571
577
util . inspect ( a , { maxArrayLength : 4 } ) ,
572
578
"[ 'foo', <1 empty item>, 'baz', <97 empty items>, ... 1 more item ]"
573
579
) ;
580
+ assert . strictEqual (
581
+ util . inspect ( a , { maxItemLength : 4 } ) ,
582
+ "[ 'foo', <1 empty item>, 'baz', <97 empty items>, ... 1 more item ]"
583
+ ) ;
574
584
// test 4 special case
575
585
assert . strictEqual ( util . inspect ( a , {
576
586
maxArrayLength : 2
577
587
} ) , "[ 'foo', <1 empty item>, ... 99 more items ]" ) ;
588
+ assert . strictEqual ( util . inspect ( a , {
589
+ maxItemLength : 2
590
+ } ) , "[ 'foo', <1 empty item>, ... 99 more items ]" ) ;
578
591
}
579
592
580
593
// Test for Array constructor in different context.
@@ -1172,6 +1185,7 @@ if (typeof Symbol !== 'undefined') {
1172
1185
assert . strictEqual ( util . inspect ( new Set ( ) ) , 'Set(0) {}' ) ;
1173
1186
assert . strictEqual ( util . inspect ( new Set ( [ 1 , 2 , 3 ] ) ) , 'Set(3) { 1, 2, 3 }' ) ;
1174
1187
assert . strictEqual ( util . inspect ( new Set ( [ 1 , 2 , 3 ] ) , { maxArrayLength : 1 } ) , 'Set(3) { 1, ... 2 more items }' ) ;
1188
+ assert . strictEqual ( util . inspect ( new Set ( [ 1 , 2 , 3 ] ) , { maxItemLength : 1 } ) , 'Set(3) { 1, ... 2 more items }' ) ;
1175
1189
const set = new Set ( [ 'foo' ] ) ;
1176
1190
set . bar = 42 ;
1177
1191
assert . strictEqual (
@@ -1194,6 +1208,8 @@ if (typeof Symbol !== 'undefined') {
1194
1208
"Map(3) { 1 => 'a', 2 => 'b', 3 => 'c' }" ) ;
1195
1209
assert . strictEqual ( util . inspect ( new Map ( [ [ 1 , 'a' ] , [ 2 , 'b' ] , [ 3 , 'c' ] ] ) , { maxArrayLength : 1 } ) ,
1196
1210
"Map(3) { 1 => 'a', ... 2 more items }" ) ;
1211
+ assert . strictEqual ( util . inspect ( new Map ( [ [ 1 , 'a' ] , [ 2 , 'b' ] , [ 3 , 'c' ] ] ) , { maxItemLength : 1 } ) ,
1212
+ "Map(3) { 1 => 'a', ... 2 more items }" ) ;
1197
1213
const map = new Map ( [ [ 'foo' , null ] ] ) ;
1198
1214
map . bar = 42 ;
1199
1215
assert . strictEqual ( util . inspect ( map , true ) ,
@@ -1280,6 +1296,8 @@ if (typeof Symbol !== 'undefined') {
1280
1296
map . set ( 'A' , 'B!' ) ;
1281
1297
assert . strictEqual ( util . inspect ( map . entries ( ) , { maxArrayLength : 1 } ) ,
1282
1298
"[Map Entries] { [ 'foo', 'bar' ], ... 1 more item }" ) ;
1299
+ assert . strictEqual ( util . inspect ( map . entries ( ) , { maxItemLength : 1 } ) ,
1300
+ "[Map Entries] { [ 'foo', 'bar' ], ... 1 more item }" ) ;
1283
1301
// Make sure the iterator doesn't get consumed.
1284
1302
const keys = map . keys ( ) ;
1285
1303
assert . strictEqual ( util . inspect ( keys ) , "[Map Iterator] { 'foo', 'A' }" ) ;
@@ -1288,6 +1306,9 @@ if (typeof Symbol !== 'undefined') {
1288
1306
assert . strictEqual (
1289
1307
util . inspect ( keys , { maxArrayLength : 0 } ) ,
1290
1308
'[Map Iterator] { ... 2 more items, extra: true }' ) ;
1309
+ assert . strictEqual (
1310
+ util . inspect ( keys , { maxItemLength : 0 } ) ,
1311
+ '[Map Iterator] { ... 2 more items, extra: true }' ) ;
1291
1312
}
1292
1313
1293
1314
// Test Set iterators.
@@ -1311,6 +1332,9 @@ if (typeof Symbol !== 'undefined') {
1311
1332
assert . strictEqual (
1312
1333
util . inspect ( keys , { maxArrayLength : 1 } ) ,
1313
1334
'[Set Iterator] { 1, ... 1 more item, extra: true }' ) ;
1335
+ assert . strictEqual (
1336
+ util . inspect ( keys , { maxItemLength : 1 } ) ,
1337
+ '[Set Iterator] { 1, ... 1 more item, extra: true }' ) ;
1314
1338
}
1315
1339
1316
1340
// Minimal inspection should still return as much information as possible about
@@ -1511,6 +1535,39 @@ if (typeof Symbol !== 'undefined') {
1511
1535
assert ( util . inspect ( x , { maxArrayLength : Infinity } ) . endsWith ( ' 0, 0\n]' ) ) ;
1512
1536
}
1513
1537
1538
+ // maxItemLength
1539
+ {
1540
+ const x = new Array ( 101 ) . fill ( ) ;
1541
+ assert ( util . inspect ( x ) . endsWith ( '1 more item\n]' ) ) ;
1542
+ assert ( ! util . inspect ( x , { maxItemLength : 101 } ) . endsWith ( '1 more item\n]' ) ) ;
1543
+ assert . strictEqual (
1544
+ util . inspect ( x , { maxItemLength : - 1 } ) ,
1545
+ '[ ... 101 more items ]'
1546
+ ) ;
1547
+ assert . strictEqual ( util . inspect ( x , { maxItemLength : 0 } ) ,
1548
+ '[ ... 101 more items ]' ) ;
1549
+ }
1550
+
1551
+ {
1552
+ const x = Array ( 101 ) ;
1553
+ assert . strictEqual ( util . inspect ( x , { maxItemLength : 0 } ) ,
1554
+ '[ ... 101 more items ]' ) ;
1555
+ assert ( ! util . inspect ( x , { maxItemLength : null } ) . endsWith ( '1 more item\n]' ) ) ;
1556
+ assert ( ! util . inspect (
1557
+ x , { maxItemLength : Infinity }
1558
+ ) . endsWith ( '1 more item ]' ) ) ;
1559
+ }
1560
+
1561
+ {
1562
+ const x = new Uint8Array ( 101 ) ;
1563
+ assert ( util . inspect ( x ) . endsWith ( '1 more item\n]' ) ) ;
1564
+ assert ( ! util . inspect ( x , { maxItemLength : 101 } ) . includes ( '1 more item' ) ) ;
1565
+ assert . strictEqual ( util . inspect ( x , { maxItemLength : 0 } ) ,
1566
+ 'Uint8Array(101) [ ... 101 more items ]' ) ;
1567
+ assert ( ! util . inspect ( x , { maxItemLength : null } ) . includes ( '1 more item' ) ) ;
1568
+ assert ( util . inspect ( x , { maxItemLength : Infinity } ) . endsWith ( ' 0, 0\n]' ) ) ;
1569
+ }
1570
+
1514
1571
{
1515
1572
const obj = { foo : 'abc' , bar : 'xyz' } ;
1516
1573
const oneLine = util . inspect ( obj , { breakLength : Infinity } ) ;
@@ -1922,6 +1979,9 @@ util.inspect(process);
1922
1979
out = util . inspect ( weakMap , { maxArrayLength : 0 , showHidden : true } ) ;
1923
1980
expect = 'WeakMap { ... 2 more items }' ;
1924
1981
assert . strictEqual ( out , expect ) ;
1982
+ out = util . inspect ( weakMap , { maxItemLength : 0 , showHidden : true } ) ;
1983
+ expect = 'WeakMap { ... 2 more items }' ;
1984
+ assert . strictEqual ( out , expect ) ;
1925
1985
1926
1986
weakMap . extra = true ;
1927
1987
out = util . inspect ( weakMap , { maxArrayLength : 1 , showHidden : true } ) ;
@@ -1931,6 +1991,14 @@ util.inspect(process);
1931
1991
'extra: true }' ;
1932
1992
assert ( out === expect || out === expectAlt ,
1933
1993
`Found: "${ out } "\nrather than: "${ expect } "\nor: "${ expectAlt } "` ) ;
1994
+ weakMap . extra = true ;
1995
+ out = util . inspect ( weakMap , { maxItemLength : 1 , showHidden : true } ) ;
1996
+ // It is not possible to determine the output reliable.
1997
+ expect = 'WeakMap { [ [length]: 0 ] => {}, ... 1 more item, extra: true }' ;
1998
+ expectAlt = 'WeakMap { {} => [ [length]: 0 ], ... 1 more item, ' +
1999
+ 'extra: true }' ;
2000
+ assert ( out === expect || out === expectAlt ,
2001
+ `Found: "${ out } "\nrather than: "${ expect } "\nor: "${ expectAlt } "` ) ;
1934
2002
1935
2003
// Test WeakSet
1936
2004
arr . push ( 1 ) ;
@@ -1946,12 +2014,22 @@ util.inspect(process);
1946
2014
out = util . inspect ( weakSet , { maxArrayLength : - 2 , showHidden : true } ) ;
1947
2015
expect = 'WeakSet { ... 2 more items }' ;
1948
2016
assert . strictEqual ( out , expect ) ;
2017
+ out = util . inspect ( weakSet , { maxItemLength : - 2 , showHidden : true } ) ;
2018
+ expect = 'WeakSet { ... 2 more items }' ;
2019
+ assert . strictEqual ( out , expect ) ;
1949
2020
1950
2021
weakSet . extra = true ;
1951
2022
out = util . inspect ( weakSet , { maxArrayLength : 1 , showHidden : true } ) ;
1952
2023
// It is not possible to determine the output reliable.
1953
2024
expect = 'WeakSet { {}, ... 1 more item, extra: true }' ;
1954
2025
expectAlt = 'WeakSet { [ 1, [length]: 1 ], ... 1 more item, extra: true }' ;
2026
+ assert ( out === expect || out === expectAlt ,
2027
+ `Found: "${ out } "\nrather than: "${ expect } "\nor: "${ expectAlt } "` ) ;
2028
+ weakSet . extra = true ;
2029
+ out = util . inspect ( weakSet , { maxItemLength : 1 , showHidden : true } ) ;
2030
+ // It is not possible to determine the output reliable.
2031
+ expect = 'WeakSet { {}, ... 1 more item, extra: true }' ;
2032
+ expectAlt = 'WeakSet { [ 1, [length]: 1 ], ... 1 more item, extra: true }' ;
1955
2033
assert ( out === expect || out === expectAlt ,
1956
2034
`Found: "${ out } "\nrather than: "${ expect } "\nor: "${ expectAlt } "` ) ;
1957
2035
// Keep references to the WeakMap entries, otherwise they could be GCed too
0 commit comments