Skip to content

Commit c6eb00e

Browse files
committed
fix head hydration
1 parent 8a54f83 commit c6eb00e

File tree

4 files changed

+10
-21
lines changed

4 files changed

+10
-21
lines changed

packages/svelte/src/internal/client/dom/blocks/each.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,7 @@ import {
66
EACH_ITEM_REACTIVE,
77
EACH_KEYED
88
} from '../../../../constants.js';
9-
import {
10-
hydrate_anchor,
11-
hydrate_nodes,
12-
hydrating,
13-
set_hydrating,
14-
update_hydrate_nodes
15-
} from '../hydration.js';
9+
import { hydrate_anchor, hydrate_nodes, hydrating, set_hydrating } from '../hydration.js';
1610
import { empty } from '../operations.js';
1711
import { insert, remove } from '../reconciler.js';
1812
import { untrack } from '../../runtime.js';

packages/svelte/src/internal/client/dom/blocks/svelte-head.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { hydrate_nodes, hydrating, set_hydrate_nodes, update_hydrate_nodes } from '../hydration.js';
1+
import { hydrate_anchor, hydrate_nodes, hydrating, set_hydrate_nodes } from '../hydration.js';
22
import { empty } from '../operations.js';
33
import { render_effect } from '../../reactivity/effects.js';
44
import { remove } from '../reconciler.js';
@@ -15,7 +15,13 @@ export function head(render_fn) {
1515

1616
if (hydrating) {
1717
previous_hydrate_nodes = hydrate_nodes;
18-
update_hydrate_nodes(document.head.firstChild);
18+
19+
let anchor = /** @type {import('#client').TemplateNode} */ (document.head.firstChild);
20+
while (anchor.nodeType !== 8 || /** @type {Comment} */ (anchor).data !== '[') {
21+
anchor = /** @type {import('#client').TemplateNode} */ (anchor.nextSibling);
22+
}
23+
24+
anchor = /** @type {import('#client').TemplateNode} */ (hydrate_anchor(anchor));
1925
}
2026

2127
var anchor = document.head.appendChild(empty());

packages/svelte/src/internal/client/dom/hydration.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@ export function set_hydrate_nodes(nodes) {
2525
hydrate_nodes = /** @type {import('#client').TemplateNode[]} */ (nodes);
2626
}
2727

28-
/**
29-
* @param {Node | null} first
30-
* @param {boolean} [insert_text] Whether to insert an empty text node if `nodes` is empty
31-
*/
32-
export function update_hydrate_nodes(first, insert_text) {
33-
const nodes = get_hydrate_nodes(first, insert_text);
34-
set_hydrate_nodes(nodes);
35-
return nodes;
36-
}
37-
3828
/**
3929
* Returns all nodes between the first `<![>...<!]>` comment tag pair encountered.
4030
* @param {Node} node

packages/svelte/src/internal/client/render.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import {
1515
hydrate_nodes,
1616
hydrating,
1717
set_hydrate_nodes,
18-
set_hydrating,
19-
update_hydrate_nodes
18+
set_hydrating
2019
} from './dom/hydration.js';
2120
import { array_from } from './utils.js';
2221
import { handle_event_propagation } from './dom/elements/events.js';

0 commit comments

Comments
 (0)