From 579224846eb6ec3bd1587f04be7ea41f5ef90b3d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 12 Oct 2026 22:15:19 -0400 Subject: [PATCH] chore: don't capture writes that match the real value but not the batch's view Neither the else-if branch in internal_set nor its equivalent in update_derived is needed for any test. --- packages/svelte/src/internal/client/reactivity/deriveds.js | 2 -- packages/svelte/src/internal/client/reactivity/sources.js | 3 --- 2 files changed, 5 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/deriveds.js b/packages/svelte/src/internal/client/reactivity/deriveds.js index 8ed5b35127..9b2b791a17 100644 --- a/packages/svelte/src/internal/client/reactivity/deriveds.js +++ b/packages/svelte/src/internal/client/reactivity/deriveds.js @@ -434,8 +434,6 @@ export function update_derived(derived) { (previous_batch ?? current_batch)?.remove_dirty_reaction(derived); return; } - } else if (batch_values?.has(derived) && !derived.equals(batch_values?.get(derived))) { - current_batch?.capture(derived, derived.v); } // don't mark derived clean if we're reading it inside a diff --git a/packages/svelte/src/internal/client/reactivity/sources.js b/packages/svelte/src/internal/client/reactivity/sources.js index dde93fa581..68d0e53e22 100644 --- a/packages/svelte/src/internal/client/reactivity/sources.js +++ b/packages/svelte/src/internal/client/reactivity/sources.js @@ -37,7 +37,6 @@ import { eager_block_effects, schedule_effect, legacy_updates, - current_batch, first_batch } from './batch.js'; import { proxy } from '../proxy.js'; @@ -276,8 +275,6 @@ 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;