diff --git a/.changeset/fifty-llamas-know.md b/.changeset/fifty-llamas-know.md new file mode 100644 index 000000000000..f11c975f3dd2 --- /dev/null +++ b/.changeset/fifty-llamas-know.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +chore: simplify `
` cleaning diff --git a/packages/svelte/src/compiler/phases/3-transform/utils.js b/packages/svelte/src/compiler/phases/3-transform/utils.js index 5aa40c8abb5c..5803c0494750 100644 --- a/packages/svelte/src/compiler/phases/3-transform/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/utils.js @@ -271,19 +271,12 @@ export function clean_nodes( var first = trimmed[0]; - // initial newline inside a `` is disregarded, if not followed by another newline + // if first text node inside ais a single newline, discard it, because otherwise + // the browser will do it for us which could break hydration if (parent.type === 'RegularElement' && parent.name === 'pre' && first?.type === 'Text') { - const text = first.data.replace(regex_starts_with_newline, ''); - if (text !== first.data) { - const tmp = text.replace(regex_starts_with_newline, ''); - if (text === tmp) { - first.data = text; - first.raw = first.raw.replace(regex_starts_with_newline, ''); - if (first.data === '') { - trimmed.shift(); - first = trimmed[0]; - } - } + if (first.data === '\n' || first.data === '\r\n') { + trimmed.shift(); + first = trimmed[0]; } }