diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index f7d657aa93..7434c57e88 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -895,6 +895,7 @@ export class Batch { current_batch = null; batch_values = null; wv_values = null; + held_sources = null; stale_sources = null; old_values.clear(); @@ -935,8 +936,11 @@ export class Batch { /** * @param {boolean} blocking * @param {Effect} effect + * @returns {void} */ decrement(blocking, effect) { + if (this.merged_into) return this.merged_into.decrement(blocking, effect); + this.#pending -= 1; if (blocking) { diff --git a/packages/svelte/src/internal/client/reactivity/deriveds.js b/packages/svelte/src/internal/client/reactivity/deriveds.js index 01bec8518c..3449613c5d 100644 --- a/packages/svelte/src/internal/client/reactivity/deriveds.js +++ b/packages/svelte/src/internal/client/reactivity/deriveds.js @@ -133,7 +133,6 @@ export function async_derived(fn, label, location) { /** @type {Set>>} */ var deferreds = new Set(); - // TODO types; add to source, or special object to not have all the other objects contain another property? signal.e = async_effect(() => { var effect = /** @type {Effect} */ (active_effect);