From bc874ba219d77055469e8eaf4d2a4cd78342c8c4 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 1 Apr 2025 15:22:14 +0100 Subject: [PATCH 1/3] fix: ensure clearing of old values happens indepedent of root flushes --- .changeset/kind-elephants-behave.md | 5 +++++ packages/svelte/src/internal/client/runtime.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/kind-elephants-behave.md diff --git a/.changeset/kind-elephants-behave.md b/.changeset/kind-elephants-behave.md new file mode 100644 index 000000000000..41c6711c5815 --- /dev/null +++ b/.changeset/kind-elephants-behave.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ensure clearing of old values happens indepedent of root flushes diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index a5d26412a4e6..a69181da986a 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -692,6 +692,7 @@ function flush_queued_root_effects() { var collected_effects = process_effects(root_effects[i]); flush_queued_effects(collected_effects); } + old_values.clear(); } } finally { is_flushing = false; @@ -701,7 +702,6 @@ function flush_queued_root_effects() { if (DEV) { dev_effect_stack = []; } - old_values.clear(); } } From dfa435030cfbec1806b0b50209034cd47f8b01c8 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 1 Apr 2025 15:56:10 +0100 Subject: [PATCH 2/3] lint --- .changeset/kind-elephants-behave.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/kind-elephants-behave.md b/.changeset/kind-elephants-behave.md index 41c6711c5815..f52dc1fd36a0 100644 --- a/.changeset/kind-elephants-behave.md +++ b/.changeset/kind-elephants-behave.md @@ -2,4 +2,4 @@ 'svelte': patch --- -fix: ensure clearing of old values happens indepedent of root flushes +fix: ensure clearing of old values happens independent of root flushes From 3b44fe65c6cc7790bcde40cd035a8d84b777380c Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 1 Apr 2025 15:56:22 +0100 Subject: [PATCH 3/3] test --- .../samples/onmount-prop-access/Component.svelte | 12 ++++++++++++ .../samples/onmount-prop-access/_config.js | 7 +++++++ .../samples/onmount-prop-access/main.svelte | 14 ++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 packages/svelte/tests/runtime-runes/samples/onmount-prop-access/Component.svelte create mode 100644 packages/svelte/tests/runtime-runes/samples/onmount-prop-access/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/onmount-prop-access/main.svelte diff --git a/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/Component.svelte b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/Component.svelte new file mode 100644 index 000000000000..b5da702fa7b2 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/Component.svelte @@ -0,0 +1,12 @@ + diff --git a/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/_config.js b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/_config.js new file mode 100644 index 000000000000..0d24e265d3ab --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/_config.js @@ -0,0 +1,7 @@ +import { test } from '../../test'; + +export default test({ + async test({ assert, logs }) { + assert.deepEqual(logs, [1]); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/main.svelte b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/main.svelte new file mode 100644 index 000000000000..92746760a484 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/onmount-prop-access/main.svelte @@ -0,0 +1,14 @@ + + +{#key key} + +{/key}