diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index c5212ff286..fe759e19d0 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -528,9 +528,7 @@ export class Batch { this.#pending -= 1; if (blocking) this.#blocking_pending -= 1; - if (this.#decrement_queued || skip) { - return; - } + if (this.#decrement_queued || skip) return; this.#decrement_queued = true; @@ -587,20 +585,14 @@ export class Batch { // we need to override values with the ones in this batch... batch_values = new Map(this.current); - var is_earlier = true; - - // ...and undo changes belonging to other batches - // that don't coincide with this batch + // ...and undo changes belonging to other batches unless they block this one for (const batch of batches) { - if (batch === this) { - is_earlier = false; - continue; - } + if (batch === this) continue; var intersects = false; var differs = false; - if (is_earlier) { + if (batch.id < this.id) { for (const source of batch.current.keys()) { intersects ||= this.current.has(source); differs ||= !this.current.has(source);