diff --git a/.changeset/sour-jars-sniff.md b/.changeset/sour-jars-sniff.md new file mode 100644 index 000000000000..e8e59a029276 --- /dev/null +++ b/.changeset/sour-jars-sniff.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: update untracked writes for `BLOCK_EFFECT`s too diff --git a/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/A.svelte b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/A.svelte new file mode 100644 index 000000000000..c4b6f2e3a087 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/A.svelte @@ -0,0 +1,10 @@ + + +a \ No newline at end of file diff --git a/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/B.svelte b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/B.svelte new file mode 100644 index 000000000000..17bc76f775de --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/B.svelte @@ -0,0 +1,10 @@ + + +b \ No newline at end of file diff --git a/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/_config.js new file mode 100644 index 000000000000..c2f95c88827a --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/_config.js @@ -0,0 +1,14 @@ +import { flushSync } from 'svelte'; +import { test } from '../../test'; + +export default test({ + html: ' a', + async test({ assert, target }) { + const btn = target.querySelector('button'); + flushSync(() => { + btn?.click(); + }); + + assert.htmlEqual(target.innerHTML, ` b`); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/main.svelte b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/main.svelte new file mode 100644 index 000000000000..a898b909e131 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/derived-dirty-after-read/main.svelte @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file