fix: pre
tag with single \n
incorrect hydration
#14783
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #14767
This is a super weird one...basically calling
firstChild
on apre
tag where the first text node is a single\n
skips the\n
completely. This meant that a code like thiswas incorrectly compiled to have
but
$.child
was already returning thediv
.This is not something we do, the browser does this as you can see in this codepen so we have to special case it. However this meant that the check for hydration mismatch on reset was wrong to so i had to compensate there too.
Finally for an extra bit of weirdness, the
\n
is literally removed frominnerHTML
too (also tested in the codepen) so in the test i had to specify an_expected.html
.All of this feels very weird and kinda brittle to me but i don't know if there's a better solution. WDYT?
Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.packages/svelte/src
, add a changeset (npx changeset
).Tests and linting
pnpm test
and lint the project withpnpm lint