From 4883fd2c83e92226eb17c9a686712351163c482f Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Thu, 6 Feb 2025 22:26:03 +0100 Subject: [PATCH] fix: hydrate `href` that is part of spread attributes (#15226) 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 0000000000..f40294ddff --- /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 308f23d340..4a0f0cea0e 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 2f5b652fac..e1076af2ec 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 be01d05f8e..3f0c988016 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