fix: pre tag with single \n incorrect hydration
#14783
Closed
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
firstChildon apretag where the first text node is a single\nskips the\ncompletely. This meant that a code like thiswas incorrectly compiled to have
but
$.childwas 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
\nis literally removed frominnerHTMLtoo (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 testand lint the project withpnpm lint