From 1c6ebc93c8d12bd7a8874153f4bbd2f35c32be20 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 6 Feb 2025 13:38:22 +0100 Subject: [PATCH] fix: hydrate `href` that is part of spread attributes We had some duplicated and buggy code, removing it fixes #15120 --- .changeset/wicked-apes-sin.md | 5 +++++ .../svelte/src/internal/client/dom/elements/attributes.js | 6 +----- .../samples/repair-mismatched-a-href/_expected.html | 2 +- .../hydration/samples/repair-mismatched-a-href/main.svelte | 1 + 4 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 .changeset/wicked-apes-sin.md diff --git a/.changeset/wicked-apes-sin.md b/.changeset/wicked-apes-sin.md new file mode 100644 index 000000000000..f40294ddff11 --- /dev/null +++ b/.changeset/wicked-apes-sin.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: hydrate `href` that is part of 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 308f23d34000..4a0f0cea0e00 100644 --- a/packages/svelte/src/internal/client/dom/elements/attributes.js +++ b/packages/svelte/src/internal/client/dom/elements/attributes.js @@ -419,11 +419,7 @@ export function set_attributes( // @ts-ignore element[name] = value; } else if (typeof value !== 'function') { - if (hydrating && (name === 'src' || name === 'href' || name === 'srcset')) { - if (!skip_warning) check_src_in_dev_hydration(element, name, value ?? ''); - } else { - set_attribute(element, name, value); - } + set_attribute(element, name, value); } } if (key === 'style' && '__styles' in element) { diff --git a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html index 2f5b652facf3..e1076af2ec8b 100644 --- a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html +++ b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html @@ -1 +1 @@ -foo +foo foo diff --git a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte index be01d05f8e7d..3f0c98801637 100644 --- a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte +++ b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte @@ -3,3 +3,4 @@ foo +foo