diff --git a/src/Tracy/Dumper/Exposer.php b/src/Tracy/Dumper/Exposer.php index 04a5d4f60..5a7d5c0e5 100644 --- a/src/Tracy/Dumper/Exposer.php +++ b/src/Tracy/Dumper/Exposer.php @@ -239,7 +239,7 @@ public static function exposeDsCollection( Describer $describer, ): void { - foreach ($obj as $k => $v) { + foreach (clone $obj as $k => $v) { $describer->addPropertyTo($value, (string) $k, $v); } } diff --git a/tests/Tracy/Dumper.toText().specials.ds.phpt b/tests/Tracy/Dumper.toText().specials.ds.phpt index b2460650b..b475df4eb 100644 --- a/tests/Tracy/Dumper.toText().specials.ds.phpt +++ b/tests/Tracy/Dumper.toText().specials.ds.phpt @@ -34,3 +34,25 @@ Assert::match( XX, Dumper::toText($map), ); + + +$queue = new Ds\Queue(['value']); +Assert::match( + <<<'XX' + Ds\Queue #%d% + 0: 'value' + XX, + Dumper::toText($queue), +); +Assert::count(1, $queue); + + +$stack = new Ds\Stack(['value']); +Assert::match( + <<<'XX' + Ds\Stack #%d% + 0: 'value' + XX, + Dumper::toText($stack), +); +Assert::count(1, $stack);