@@ -338,7 +338,7 @@ assert.strictEqual(
338338
339339 const value = { } ;
340340 value . a = value ;
341- assert . strictEqual ( util . inspect ( value ) , '{ a: [Circular] }' ) ;
341+ assert . strictEqual ( util . inspect ( value ) , '<ref *1> { a: [Circular *1 ] }' ) ;
342342}
343343
344344// Array with dynamic properties.
@@ -993,7 +993,7 @@ if (typeof Symbol !== 'undefined') {
993993{
994994 const set = new Set ( ) ;
995995 set . add ( set ) ;
996- assert . strictEqual ( util . inspect ( set ) , 'Set { [Circular] }' ) ;
996+ assert . strictEqual ( util . inspect ( set ) , '<ref *1> Set { [Circular *1 ] }' ) ;
997997}
998998
999999// Test Map.
@@ -1011,12 +1011,32 @@ if (typeof Symbol !== 'undefined') {
10111011{
10121012 const map = new Map ( ) ;
10131013 map . set ( map , 'map' ) ;
1014- assert . strictEqual ( util . inspect ( map ) , "Map { [Circular] => 'map' }" ) ;
1014+ assert . strictEqual ( inspect ( map ) , "<ref *1> Map { [Circular *1 ] => 'map' }" ) ;
10151015 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+ ) ;
10171020 map . delete ( map ) ;
10181021 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+ ) ;
10201040}
10211041
10221042// Test Promise.
@@ -1214,7 +1234,9 @@ if (typeof Symbol !== 'undefined') {
12141234 arr [ 0 ] [ 0 ] [ 0 ] = { a : 2 } ;
12151235 assert . strictEqual ( util . inspect ( arr ) , '[ [ [ [Object] ] ] ]' ) ;
12161236 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] ] ] ]' ) ;
12181240}
12191241
12201242// Corner cases.
@@ -1608,7 +1630,7 @@ util.inspect(process);
16081630 ' 2,' ,
16091631 ' [length]: 2' ,
16101632 ' ]' ,
1611- ' } => [Map Iterator] {' ,
1633+ ' } => <ref *1> [Map Iterator] {' ,
16121634 ' Uint8Array [' ,
16131635 ' [BYTES_PER_ELEMENT]: 1,' ,
16141636 ' [length]: 0,' ,
@@ -1619,7 +1641,7 @@ util.inspect(process);
16191641 ' foo: true' ,
16201642 ' }' ,
16211643 ' ],' ,
1622- ' [Circular]' ,
1644+ ' [Circular *1 ]' ,
16231645 ' },' ,
16241646 ' [size]: 2' ,
16251647 '}'
@@ -1647,15 +1669,15 @@ util.inspect(process);
16471669 ' [byteOffset]: 0,' ,
16481670 ' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
16491671 ' ],' ,
1650- ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => [Map Iterator] {' ,
1672+ ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
16511673 ' Uint8Array [' ,
16521674 ' [BYTES_PER_ELEMENT]: 1,' ,
16531675 ' [length]: 0,' ,
16541676 ' [byteLength]: 0,' ,
16551677 ' [byteOffset]: 0,' ,
16561678 ' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
16571679 ' ],' ,
1658- ' [Circular]' ,
1680+ ' [Circular *1 ]' ,
16591681 ' },' ,
16601682 ' [size]: 2' ,
16611683 '}'
@@ -1687,7 +1709,7 @@ util.inspect(process);
16871709 ' [Set Iterator] {' ,
16881710 ' [ 1,' ,
16891711 ' 2,' ,
1690- ' [length]: 2 ] } => [Map Iterator] {' ,
1712+ ' [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
16911713 ' Uint8Array [' ,
16921714 ' [BYTES_PER_ELEMENT]: 1,' ,
16931715 ' [length]: 0,' ,
@@ -1696,7 +1718,7 @@ util.inspect(process);
16961718 ' [buffer]: ArrayBuffer {' ,
16971719 ' byteLength: 0,' ,
16981720 ' foo: true } ],' ,
1699- ' [Circular] },' ,
1721+ ' [Circular *1 ] },' ,
17001722 ' [size]: 2 }'
17011723 ] . join ( '\n' ) ;
17021724
0 commit comments