From 6e143c1fe63ceca65b692232f02755370c0ba57b Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Wed, 11 Dec 2024 11:09:40 +0000 Subject: [PATCH 1/2] fix: better handle hydration of script/style elements --- .changeset/rotten-yaks-nail.md | 5 +++++ packages/svelte/src/internal/client/dom/hydration.js | 11 ++++++++++- packages/svelte/src/internal/server/index.js | 2 +- .../svelte/tests/hydration/samples/script/_config.js | 11 +++++++++++ .../svelte/tests/hydration/samples/script/main.svelte | 1 + 5 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 .changeset/rotten-yaks-nail.md create mode 100644 packages/svelte/tests/hydration/samples/script/_config.js create mode 100644 packages/svelte/tests/hydration/samples/script/main.svelte diff --git a/.changeset/rotten-yaks-nail.md b/.changeset/rotten-yaks-nail.md new file mode 100644 index 000000000000..bbe9b777ae81 --- /dev/null +++ b/.changeset/rotten-yaks-nail.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: better handle hydration of script/style elements diff --git a/packages/svelte/src/internal/client/dom/hydration.js b/packages/svelte/src/internal/client/dom/hydration.js index 8523ff97d559..58a7efeaa902 100644 --- a/packages/svelte/src/internal/client/dom/hydration.js +++ b/packages/svelte/src/internal/client/dom/hydration.js @@ -40,7 +40,16 @@ export function set_hydrate_node(node) { } export function hydrate_next() { - return set_hydrate_node(/** @type {TemplateNode} */ (get_next_sibling(hydrate_node))); + var sibling = /** @type {TemplateNode} */ (get_next_sibling(hydrate_node)); + if (sibling === null) { + var parent_node_name = hydrate_node.parentNode?.nodeName; + // If we're hydrating inside a