From 95f5c157dbd92a50afc4f548f0289553de31281b Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 13 Oct 2026 07:31:38 -0400 Subject: [PATCH] restore capturing writes in internal_set that match the real value but not the batch's view Needed on async-another-try-pt-2 (async-fork-write-back). --- packages/svelte/src/internal/client/reactivity/sources.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index 5dcdbcd065..09b6d3bb97 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -36,7 +36,8 @@ import { batch_values, eager_block_effects, schedule_effect, - legacy_updates + legacy_updates, + current_batch } from './batch.js'; import { proxy } from '../proxy.js'; import { execute_derived } from './deriveds.js'; @@ -270,6 +271,8 @@ export function internal_set(source, value, updated_during_traversal = null) { if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) { flush_eager_effects(); } + } else if (batch_values?.has(source) && !source.equals(batch_values?.get(source))) { + current_batch?.capture(source, source.v); } return value;