From 48db6b0f6281ea8eef8b2505afea624eb95531e9 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 25 Feb 2026 22:07:28 -0500 Subject: [PATCH] ugh --- packages/svelte/src/internal/client/reactivity/batch.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 661c170170..affefcce20 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -856,7 +856,12 @@ export function schedule_effect(signal) { // updated an internal source, or because a branch is being unskipped, // bail out or we'll cause a second flush if (collected_effects !== null && effect === active_effect) { - return; + // in sync mode, render effects run during traversal. in an extreme edge case + // they can be made dirty after they have already been visited, in which + // case we shouldn't bail out + if (async_mode_flag || (signal.f & RENDER_EFFECT) === 0) { + return; + } } if ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {