diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 93c1e2f155..3acdf80d84 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -480,6 +480,14 @@ function reconcile(state, array, anchor, flags, get_key) { } } + if ((effect.f & INERT) !== 0) { + resume_effect(effect); + if (is_animated) { + effect.nodes?.a?.unfix(); + (to_animate ??= new Set()).delete(effect); + } + } + if ((effect.f & EFFECT_OFFSCREEN) !== 0) { effect.f ^= EFFECT_OFFSCREEN; @@ -500,14 +508,6 @@ function reconcile(state, array, anchor, flags, get_key) { move(effect, next, anchor); prev = effect; - if ((effect.f & INERT) !== 0) { - resume_effect(effect); - if (is_animated) { - effect.nodes?.a?.unfix(); - (to_animate ??= new Set()).delete(effect); - } - } - matched = []; stashed = []; @@ -516,14 +516,6 @@ function reconcile(state, array, anchor, flags, get_key) { } } - if ((effect.f & INERT) !== 0) { - resume_effect(effect); - if (is_animated) { - effect.nodes?.a?.unfix(); - (to_animate ??= new Set()).delete(effect); - } - } - if (effect !== current) { if (seen !== undefined && seen.has(effect)) { if (matched.length < stashed.length) {