From cb42dfd0e419d514908417ea0f9717333e1b844e Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 20 Aug 2024 17:45:04 +0100 Subject: [PATCH] fix: ensure mark_reactions occurs for dirty signals --- packages/svelte/src/internal/client/reactivity/sources.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index 86427a7509..7a66d0a7dd 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -140,13 +140,19 @@ function mark_reactions(signal, status) { var runes = is_runes(); var length = reactions.length; + var mark_maybe_dirty = (status & MAYBE_DIRTY) !== 0; for (var i = 0; i < length; i++) { var reaction = reactions[i]; var flags = reaction.f; +<<<<<<< Updated upstream // Skip any effects that are already dirty if ((flags & DIRTY) !== 0) continue; +======= + // If a we're marking as maybe dirty and the reaction is already dirty, skip it (but always mark unowned deriveds) + if (mark_maybe_dirty && (flags & (CLEAN | UNOWNED)) === 0) continue; +>>>>>>> Stashed changes // In legacy mode, skip the current effect to prevent infinite loops if (!runes && reaction === current_effect) continue;