From 00fbd15467c0882334e3fb9973cb4378d7fe4645 Mon Sep 17 00:00:00 2001 From: Nic <162764842+Nic-Polumeyv@users.noreply.github.com> Date: Tue, 13 Oct 2026 00:04:26 -0400 Subject: [PATCH] restore the batch id check in BranchManager#commit and carry blocking_pending through #merge --- .../svelte/src/internal/client/dom/blocks/branches.js | 10 ++++++---- .../svelte/src/internal/client/reactivity/batch.js | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/branches.js b/packages/svelte/src/internal/client/dom/blocks/branches.js index 1e3c59013d..272068a253 100644 --- a/packages/svelte/src/internal/client/dom/blocks/branches.js +++ b/packages/svelte/src/internal/client/dom/blocks/branches.js @@ -110,14 +110,16 @@ export class BranchManager { } } - for (const [b, k] of this.#batches) { - this.#batches.delete(b); + this.#batches.delete(batch); - if (b === batch) { + for (const [b, k] of this.#batches) { + if (b.id > batch.id) { // keep values for newer batches - break; + continue; } + this.#batches.delete(b); + const offscreen = this.#offscreen.get(k); if (offscreen) { diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 9f8ff0808b..f7729c75f2 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -621,6 +621,12 @@ export class Batch { } this.#pending += batch.#pending; + if (batch.#blocking_pending !== null) { + const blocking_pending = (this.#blocking_pending ??= new Map()); + for (const [effect, count] of batch.#blocking_pending) { + blocking_pending.set(effect, (blocking_pending.get(effect) ?? 0) + count); + } + } for (const c of batch.#commit_callbacks) { this.oncommit(() => c(batch));