From 4e3bd9489732187be222efd9d5abf0f08e8b09bb Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 19 May 2025 21:52:22 -0400 Subject: [PATCH] fix --- .../internal/client/dom/elements/attachments.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/elements/attachments.js b/packages/svelte/src/internal/client/dom/elements/attachments.js index 0134f5ea95..4fc1280138 100644 --- a/packages/svelte/src/internal/client/dom/elements/attachments.js +++ b/packages/svelte/src/internal/client/dom/elements/attachments.js @@ -1,5 +1,5 @@ /** @import { Effect } from '#client' */ -import { block, branch, destroy_effect } from '../../reactivity/effects.js'; +import { block, branch, effect, destroy_effect } from '../../reactivity/effects.js'; // TODO in 6.0 or 7.0, when we remove legacy mode, we can simplify this by // getting rid of the block/branch stuff and just letting the effect rip. @@ -14,17 +14,19 @@ export function attach(node, get_fn) { var fn = undefined; /** @type {Effect | null} */ - var effect; + var e; block(() => { if (fn !== (fn = get_fn())) { - if (effect) { - destroy_effect(effect); - effect = null; + if (e) { + destroy_effect(e); + e = null; } if (fn) { - effect = branch(() => /** @type {(node: Element) => void} */ (fn)(node)); + e = branch(() => { + effect(() => /** @type {(node: Element) => void} */ (fn)(node)); + }); } } });