From 01c124c00b7e5a283ea9d6eeabda611d77757016 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 16 Jul 2026 16:50:24 +0200 Subject: [PATCH] more --- packages/svelte/src/internal/client/reactivity/batch.js | 9 +++++---- packages/svelte/src/internal/client/runtime.js | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 38604427f1..2c90191895 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -277,7 +277,6 @@ export class Batch { * discarded along with the fork. Committing writes the fork's sources * through, after which deriveds recompute in the real world. * `null` unless this batch is (or was) a fork. - * Lazily initialised for perf reasons * @type {Map | null} */ fork_values = null; @@ -1139,9 +1138,11 @@ export class Batch { for (var fork = first_batch; fork !== null; fork = fork.#next) { if (!fork.is_fork || fork.fork_effects === null) continue; - for (const signal of this.current.keys()) { - fork.current.delete(signal); - fork.previous.delete(signal); + if (fork.id < this.id) { + for (const signal of this.current.keys()) { + fork.current.delete(signal); + fork.previous.delete(signal); + } } if (fork.current.size === 0) { diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index a703f25b35..0db799b867 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -741,7 +741,7 @@ export function get(signal) { var override_owner = override[1]; if (override_owner !== null && active_reaction !== null && !untracking) { - while (override_owner.merged_into !== null) override_owner = override_owner.merged_into; + override_owner = override_owner.resolved(); (override_owner.stale_readers ??= new Set()).add(active_reaction); }