diff --git a/packages/svelte/src/internal/client/dom/blocks/if.js b/packages/svelte/src/internal/client/dom/blocks/if.js index 82677d0bc4..729fc862d2 100644 --- a/packages/svelte/src/internal/client/dom/blocks/if.js +++ b/packages/svelte/src/internal/client/dom/blocks/if.js @@ -90,11 +90,6 @@ export function if_block(anchor, get_condition, consequent_fn, alternate_fn, els consequent_fn(anchor); consequent_dom = block.d; - if (mismatch) { - // Set fragment so that Svelte continues to operate in hydration mode - set_current_hydration_fragment([]); - } - return () => { // TODO make this unnecessary by linking the dom to the effect, // and removing automatically on teardown @@ -124,11 +119,6 @@ export function if_block(anchor, get_condition, consequent_fn, alternate_fn, els alternate_fn(anchor); alternate_dom = block.d; - if (mismatch) { - // Set fragment so that Svelte continues to operate in hydration mode - set_current_hydration_fragment([]); - } - return () => { // TODO make this unnecessary by linking the dom to the effect, // and removing automatically on teardown @@ -150,6 +140,11 @@ export function if_block(anchor, get_condition, consequent_fn, alternate_fn, els }); } } + + if (mismatch) { + // Set fragment so that Svelte continues to operate in hydration mode + set_current_hydration_fragment([]); + } }, block); if (elseif) { diff --git a/packages/svelte/src/internal/client/dom/reconciler.js b/packages/svelte/src/internal/client/dom/reconciler.js index ebd06796bf..81b03bbd2f 100644 --- a/packages/svelte/src/internal/client/dom/reconciler.js +++ b/packages/svelte/src/internal/client/dom/reconciler.js @@ -50,18 +50,11 @@ export function insert(current, sibling) { /** * @param {Array | import('../types.js').TemplateNode} current - * @returns {Element | Comment | Text} */ export function remove(current) { - var first_node = current; if (is_array(current)) { - var i = 0; - var node; - for (; i < current.length; i++) { - node = current[i]; - if (i === 0) { - first_node = node; - } + for (var i = 0; i < current.length; i++) { + var node = current[i]; if (node.isConnected) { node.remove(); } @@ -69,7 +62,6 @@ export function remove(current) { } else if (current.isConnected) { current.remove(); } - return /** @type {Element | Comment | Text} */ (first_node); } /**