@@ -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.
@@ -1169,7 +1189,9 @@ if (typeof Symbol !== 'undefined') {
11691189 arr [ 0 ] [ 0 ] [ 0 ] = { a : 2 } ;
11701190 assert . strictEqual ( util . inspect ( arr ) , '[ [ [ [Object] ] ] ]' ) ;
11711191 arr [ 0 ] [ 0 ] [ 0 ] = arr ;
1172- assert . strictEqual ( util . inspect ( arr ) , '[ [ [ [Circular] ] ] ]' ) ;
1192+ assert . strictEqual ( util . inspect ( arr ) , '<ref *1> [ [ [ [Circular *1] ] ] ]' ) ;
1193+ arr [ 0 ] [ 0 ] [ 0 ] = arr [ 0 ] [ 0 ] ;
1194+ assert . strictEqual ( util . inspect ( arr ) , '[ [ <ref *1> [ [Circular *1] ] ] ]' ) ;
11731195}
11741196
11751197// Corner cases.
@@ -1563,7 +1585,7 @@ util.inspect(process);
15631585 ' 2,' ,
15641586 ' [length]: 2' ,
15651587 ' ]' ,
1566- ' } => [Map Iterator] {' ,
1588+ ' } => <ref *1> [Map Iterator] {' ,
15671589 ' Uint8Array [' ,
15681590 ' [BYTES_PER_ELEMENT]: 1,' ,
15691591 ' [length]: 0,' ,
@@ -1574,7 +1596,7 @@ util.inspect(process);
15741596 ' foo: true' ,
15751597 ' }' ,
15761598 ' ],' ,
1577- ' [Circular]' ,
1599+ ' [Circular *1 ]' ,
15781600 ' },' ,
15791601 ' [size]: 2' ,
15801602 '}'
@@ -1602,15 +1624,15 @@ util.inspect(process);
16021624 ' [byteOffset]: 0,' ,
16031625 ' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
16041626 ' ],' ,
1605- ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => [Map Iterator] {' ,
1627+ ' [Set Iterator] { [ 1, 2, [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
16061628 ' Uint8Array [' ,
16071629 ' [BYTES_PER_ELEMENT]: 1,' ,
16081630 ' [length]: 0,' ,
16091631 ' [byteLength]: 0,' ,
16101632 ' [byteOffset]: 0,' ,
16111633 ' [buffer]: ArrayBuffer { byteLength: 0, foo: true }' ,
16121634 ' ],' ,
1613- ' [Circular]' ,
1635+ ' [Circular *1 ]' ,
16141636 ' },' ,
16151637 ' [size]: 2' ,
16161638 '}'
@@ -1642,7 +1664,7 @@ util.inspect(process);
16421664 ' [Set Iterator] {' ,
16431665 ' [ 1,' ,
16441666 ' 2,' ,
1645- ' [length]: 2 ] } => [Map Iterator] {' ,
1667+ ' [length]: 2 ] } => <ref *1> [Map Iterator] {' ,
16461668 ' Uint8Array [' ,
16471669 ' [BYTES_PER_ELEMENT]: 1,' ,
16481670 ' [length]: 0,' ,
@@ -1651,7 +1673,7 @@ util.inspect(process);
16511673 ' [buffer]: ArrayBuffer {' ,
16521674 ' byteLength: 0,' ,
16531675 ' foo: true } ],' ,
1654- ' [Circular] },' ,
1676+ ' [Circular *1 ] },' ,
16551677 ' [size]: 2 }'
16561678 ] . join ( '\n' ) ;
16571679
0 commit comments