Skip to content

Commit 170ef6f

Browse files
committed
fix: whitespace completely removed in each loop
1 parent 5b0a843 commit 170ef6f

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

.changeset/wise-lemons-wave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte": patch
3+
---
4+
5+
fix: whitespace completely removed in each loop

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@ export function set_should_intro(value) {
4141
* @returns {void}
4242
*/
4343
export function set_text(dom, value) {
44+
// __nodeValue is ' ' by default...this means that if we are trying to set the value of a node
45+
// that has never been updated but is already ' ' that node will never be set and it will remain
46+
// an empty text node.
47+
4448
// @ts-expect-error need to add __value to patched prototype
45-
const prev_node_value = dom.__nodeValue;
49+
const prev_node_value = dom.nodeValue === dom.__nodeValue ? dom.__nodeValue : dom.nodeValue;
4650
const next_node_value = stringify(value);
4751
if (hydrating && dom.nodeValue === next_node_value) {
4852
// In case of hydration don't reset the nodeValue as it's already correct.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { flushSync } from 'svelte';
2+
import { test } from '../../test';
3+
4+
export default test({
5+
html: `<p>space between</p>`
6+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<svelte:options runes />
2+
3+
<p>
4+
{#each ['space', ' ', 'between'] as word}
5+
{word}
6+
{/each}
7+
</p>

0 commit comments

Comments
 (0)