Skip to content

Commit e1cfa14

Browse files
committed
check visited for cyclical values
1 parent c6d7fca commit e1cfa14

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

packages/svelte/src/internal/client/runtime.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,12 +1800,14 @@ export function pop(accessors) {
18001800

18011801
/**
18021802
* @param {any} value
1803+
* @param {Set<any>} visited
18031804
* @returns {void}
18041805
*/
1805-
function deep_read(value) {
1806-
if (typeof value === 'object' && value !== null) {
1806+
function deep_read(value, visited = new Set()) {
1807+
if (typeof value === 'object' && value !== null && !visited.has(value)) {
1808+
visited.add(value);
18071809
for (let key in value) {
1808-
deep_read(value[key]);
1810+
deep_read(value[key], visited);
18091811
}
18101812
const proto = Object.getPrototypeOf(value);
18111813
if (

0 commit comments

Comments
 (0)