From 81e2617e46ed3774518abbb1edcdda25ed1f93b1 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 2 Jul 2024 19:47:29 -0400 Subject: [PATCH] tweak --- .../src/internal/client/reactivity/sources.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index ce9d1f70d6..b013d3c775 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -156,18 +156,18 @@ function mark_reactions(signal, status) { var reaction = reactions[i]; var flags = reaction.f; + // Skip any effects that are already dirty + if ((flags & DIRTY) !== 0) continue; + + // In legacy mode, skip the current effect to prevent infinite loops + if (!runes && reaction === current_effect) continue; + + // Inspect effects need to run immediately, so that the stack trace makes sense if (DEV && (flags & INSPECT_EFFECT) !== 0) { inspect_effects.add(reaction); continue; } - // We skip any effects that are already dirty. Additionally, we also - // skip if the reaction is the same as the current effect (except if we're not in runes or we - // are in force schedule mode). - if ((flags & DIRTY) !== 0 || (!runes && reaction === current_effect)) { - continue; - } - set_signal_status(reaction, status); // If the signal a) was previously clean or b) is an unowned derived, then mark it