From c7635f84df5d6cb8e7c4117d10c1f4ab1edb145c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 8 Jan 2026 20:35:52 -0500 Subject: [PATCH] use update_derived_status, so that we never set a dep-less derived MAYBE_DIRTY --- packages/svelte/src/internal/client/runtime.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 56412ee84d..fa8923c005 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -374,13 +374,15 @@ function remove_reaction(signal, dependency) { // allows us to skip the expensive work of disconnecting and immediately reconnecting it (new_deps === null || !new_deps.includes(dependency)) ) { - set_signal_status(dependency, MAYBE_DIRTY); // If we are working with a derived that is owned by an effect, then mark it as being // disconnected and remove the mark flag, as it cannot be reliably removed otherwise if ((dependency.f & CONNECTED) !== 0) { dependency.f ^= CONNECTED; dependency.f &= ~WAS_MARKED; } + + update_derived_status(dependency); + // Disconnect any reactions owned by this reaction destroy_derived_effects(/** @type {Derived} **/ (dependency)); remove_reactions(/** @type {Derived} **/ (dependency), 0);