@@ -338,7 +338,7 @@ assert.strictEqual(
338
338
339
339
const value = { } ;
340
340
value . a = value ;
341
- assert . strictEqual ( util . inspect ( value ) , '{ a: [Circular] }' ) ;
341
+ assert . strictEqual ( util . inspect ( value ) , '<ref *1> { a: [Circular *1 ] }' ) ;
342
342
}
343
343
344
344
// Array with dynamic properties.
@@ -993,7 +993,7 @@ if (typeof Symbol !== 'undefined') {
993
993
{
994
994
const set = new Set ( ) ;
995
995
set . add ( set ) ;
996
- assert . strictEqual ( util . inspect ( set ) , 'Set { [Circular] }' ) ;
996
+ assert . strictEqual ( util . inspect ( set ) , '<ref *1> Set { [Circular *1 ] }' ) ;
997
997
}
998
998
999
999
// Test Map.
@@ -1011,12 +1011,32 @@ if (typeof Symbol !== 'undefined') {
1011
1011
{
1012
1012
const map = new Map ( ) ;
1013
1013
map . set ( map , 'map' ) ;
1014
- assert . strictEqual ( util . inspect ( map ) , "Map { [Circular] => 'map' }" ) ;
1014
+ assert . strictEqual ( inspect ( map ) , "<ref *1> Map { [Circular *1 ] => 'map' }" ) ;
1015
1015
map . set ( map , map ) ;
1016
- assert . strictEqual ( util . inspect ( map ) , 'Map { [Circular] => [Circular] }' ) ;
1016
+ assert . strictEqual (
1017
+ inspect ( map ) ,
1018
+ '<ref *1> Map { [Circular *1] => [Circular *1] }'
1019
+ ) ;
1017
1020
map . delete ( map ) ;
1018
1021
map . set ( 'map' , map ) ;
1019
- assert . strictEqual ( util . inspect ( map ) , "Map { 'map' => [Circular] }" ) ;
1022
+ assert . strictEqual ( inspect ( map ) , "<ref *1> Map { 'map' => [Circular *1] }" ) ;
1023
+ }
1024
+
1025
+ // Test multiple circular references.
1026
+ {
1027
+ const obj = { } ;
1028
+ obj . a = [ obj ] ;
1029
+ obj . b = { } ;
1030
+ obj . b . inner = obj . b ;
1031
+ obj . b . obj = obj ;
1032
+
1033
+ assert . strictEqual (
1034
+ inspect ( obj ) ,
1035
+ '<ref *1> {\n' +
1036
+ ' a: [ [Circular *1] ],\n' +
1037
+ ' b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }\n' +
1038
+ '}'
1039
+ ) ;
1020
1040
}
1021
1041
1022
1042
// Test Promise.
@@ -1214,7 +1234,9 @@ if (typeof Symbol !== 'undefined') {
1214
1234
arr [ 0 ] [ 0 ] [ 0 ] = { a : 2 } ;
1215
1235
assert . strictEqual ( util . inspect ( arr ) , '[ [ [ [Object] ] ] ]' ) ;
1216
1236
arr [ 0 ] [ 0 ] [ 0 ] = arr ;
1217
- assert . strictEqual ( util . inspect ( arr ) , '[ [ [ [Circular] ] ] ]' ) ;
1237
+ assert . strictEqual ( util . inspect ( arr ) , '<ref *1> [ [ [ [Circular *1] ] ] ]' ) ;
1238
+ arr [ 0 ] [ 0 ] [ 0 ] = arr [ 0 ] [ 0 ] ;
1239
+ assert . strictEqual ( util . inspect ( arr ) , '[ [ <ref *1> [ [Circular *1] ] ] ]' ) ;
1218
1240
}
1219
1241
1220
1242
// Corner cases.
@@ -1608,7 +1630,7 @@ util.inspect(process);
1608
1630
' 2,' ,
1609
1631
' [length]: 2' ,
1610
1632
' ]' ,
1611
- ' } => [Map Iterator] {' ,
1633
+ ' } => <ref *1> [Map Iterator] {' ,
1612
1634
' Uint8Array [' ,
1613
1635
' [BYTES_PER_ELEMENT]: 1,' ,
1614
1636
' [length]: 0,' ,
@@ -1619,7 +1641,7 @@ util.inspect(process);
1619
1641
' foo: true' ,
1620
1642
' }' ,
1621
1643
' ],' ,
1622
- ' [Circular]' ,
1644
+ ' [Circular *1 ]' ,
1623
1645
' },' ,
1624
1646
' [size]: 2' ,
1625
1647
'}'
@@ -1647,15 +1669,15 @@ util.inspect(process);
1647
1669
' [byteOffset]: 0,' ,
1648
1670
' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
1649
1671
' ],' ,
1650
- ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => [Map Iterator] {' ,
1672
+ ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
1651
1673
' Uint8Array [' ,
1652
1674
' [BYTES_PER_ELEMENT]: 1,' ,
1653
1675
' [length]: 0,' ,
1654
1676
' [byteLength]: 0,' ,
1655
1677
' [byteOffset]: 0,' ,
1656
1678
' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
1657
1679
' ],' ,
1658
- ' [Circular]' ,
1680
+ ' [Circular *1 ]' ,
1659
1681
' },' ,
1660
1682
' [size]: 2' ,
1661
1683
'}'
@@ -1687,7 +1709,7 @@ util.inspect(process);
1687
1709
' [Set Iterator] {' ,
1688
1710
' [ 1,' ,
1689
1711
' 2,' ,
1690
- ' [length]: 2 ] } => [Map Iterator] {' ,
1712
+ ' [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
1691
1713
' Uint8Array [' ,
1692
1714
' [BYTES_PER_ELEMENT]: 1,' ,
1693
1715
' [length]: 0,' ,
@@ -1696,7 +1718,7 @@ util.inspect(process);
1696
1718
' [buffer]: ArrayBuffer {' ,
1697
1719
' byteLength: 0,' ,
1698
1720
' foo: true } ],' ,
1699
- ' [Circular] },' ,
1721
+ ' [Circular *1 ] },' ,
1700
1722
' [size]: 2 }'
1701
1723
] . join ( '\n' ) ;
1702
1724
0 commit comments