diff --git a/packages/svelte/src/internal/client/dom/blocks/key.js b/packages/svelte/src/internal/client/dom/blocks/key.js index e70b81de15..3cadbb3345 100644 --- a/packages/svelte/src/internal/client/dom/blocks/key.js +++ b/packages/svelte/src/internal/client/dom/blocks/key.js @@ -22,7 +22,11 @@ export function key_block(anchor_node, get_key, render_fn) { /** @type {import('#client').Effect} */ let effect; - /** @type {Set} */ + /** + * Every time `key` changes, we create a new effect. Old effects are + * removed from this set when they have fully transitioned out + * @type {Set} + */ let effects = new Set(); const key_effect = render_effect( diff --git a/packages/svelte/src/internal/client/dom/blocks/svelte-component.js b/packages/svelte/src/internal/client/dom/blocks/svelte-component.js index 1ea6f7712b..e68df96330 100644 --- a/packages/svelte/src/internal/client/dom/blocks/svelte-component.js +++ b/packages/svelte/src/internal/client/dom/blocks/svelte-component.js @@ -23,7 +23,11 @@ export function component(anchor_node, get_component, render_fn) { /** @type {import('#client').Effect} */ let effect; - /** @type {Set} */ + /** + * Every time `component` changes, we create a new effect. Old effects are + * removed from this set when they have fully transitioned out + * @type {Set} + */ let effects = new Set(); const component_effect = render_effect(