diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index b2ea396dcb..cf9b98cbd1 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -246,8 +246,11 @@ export class Boundary { if (this.#pending_count > 0) { var fragment = document.createDocumentFragment(); + var anchor = create_text(); + fragment.append(anchor); + this.#offscreen_effect = this.#main_effect; - move_effect(this.#main_effect, fragment); + move_effect_before(this.#offscreen_effect, anchor); const pending = /** @type {(anchor: Node) => void} */ (this.#props.pending); this.#pending_effect = branch(() => pending(this.#anchor)); diff --git a/packages/svelte/src/internal/client/dom/blocks/branches.js b/packages/svelte/src/internal/client/dom/blocks/branches.js index 0f9401f92e..fe1a99cd54 100644 --- a/packages/svelte/src/internal/client/dom/blocks/branches.js +++ b/packages/svelte/src/internal/client/dom/blocks/branches.js @@ -114,8 +114,6 @@ export class BranchManager { if (keys.includes(k)) { // keep the effect offscreen, as another batch will need it - move_effect_before(effect, create_text()); - this.#offscreen.set(k, effect); } else { destroy_effect(effect); diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index 0698fe87ef..26d13ae60c 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -151,7 +151,6 @@ function destroy_effects(state, to_destroy, remove_dom = true) { if (preserved_effects?.has(e)) { e.f |= EFFECT_OFFSCREEN; - move_effect_before(e, create_text()); } else { destroy_effect(to_destroy[i], remove_dom); }