diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index b0bffad595..125f21bb81 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -288,6 +288,9 @@ function mark_reactions(signal, status) { var reaction = reactions[i]; var flags = reaction.f; + // Skip any effects that are already dirty + if ((flags & DIRTY) !== 0) continue; + // In legacy mode, skip the current effect to prevent infinite loops if (!runes && reaction === active_effect) continue;