diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index 05d15b7cc8..2fe8c4f75d 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -332,9 +332,11 @@ function mark_reactions(signal, status) { set_signal_status(reaction, status); } - if ((flags & DERIVED) !== 0 && (flags & WAS_MARKED) === 0) { - reaction.f |= WAS_MARKED; - mark_reactions(/** @type {Derived} */ (reaction), MAYBE_DIRTY); + if ((flags & DERIVED) !== 0) { + if ((flags & WAS_MARKED) === 0) { + reaction.f |= WAS_MARKED; + mark_reactions(/** @type {Derived} */ (reaction), MAYBE_DIRTY); + } } else if (not_dirty) { if ((flags & BLOCK_EFFECT) !== 0) { if (eager_block_effects !== null) {