From 049b5a09bb91d627eedeb4afb4ca5f85c838f940 Mon Sep 17 00:00:00 2001 From: ComputerGuy <63362464+Ocean-OS@users.noreply.github.com> Date: Sun, 18 May 2025 13:26:02 -0700 Subject: [PATCH] fix: reuse already attached attachments from spread attributes --- .changeset/rotten-lizards-remember.md | 5 +++++ .../svelte/src/internal/client/dom/elements/attributes.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/rotten-lizards-remember.md diff --git a/.changeset/rotten-lizards-remember.md b/.changeset/rotten-lizards-remember.md new file mode 100644 index 0000000000..187f39f447 --- /dev/null +++ b/.changeset/rotten-lizards-remember.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: reuse already attached attachments from spread attributes diff --git a/packages/svelte/src/internal/client/dom/elements/attributes.js b/packages/svelte/src/internal/client/dom/elements/attributes.js index 3d1acbd31c..ca24a28211 100644 --- a/packages/svelte/src/internal/client/dom/elements/attributes.js +++ b/packages/svelte/src/internal/client/dom/elements/attributes.js @@ -448,7 +448,7 @@ export function set_attributes(element, prev, next, css_hash, skip_warning = fal } for (let symbol of Object.getOwnPropertySymbols(next)) { - if (symbol.description === ATTACHMENT_KEY) { + if (symbol.description === ATTACHMENT_KEY && !(key in prev)) { attach(element, () => next[symbol]); } }