From 5df2a638b019ffbe8631b9e42a99215dda1a7d46 Mon Sep 17 00:00:00 2001 From: David Roizenman Date: Fri, 19 Dec 2025 02:37:31 -0800 Subject: [PATCH] fix: only track block effects when deferred --- packages/svelte/src/internal/client/reactivity/batch.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 6f941c7ff2..49928d7104 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -237,7 +237,10 @@ export class Batch { } else if (async_mode_flag && (flags & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) { target.render_effects.push(effect); } else if (is_dirty(effect)) { - if ((effect.f & BLOCK_EFFECT) !== 0) this.#dirty_effects.add(effect); + // only track block effects when deferred to prevent infinite HMR loops (#17369) + if ((effect.f & BLOCK_EFFECT) !== 0 && this.is_deferred()) { + this.#dirty_effects.add(effect); + } update_effect(effect); }