diff --git a/packages/svelte/src/internal/client/dom/blocks/branches.js b/packages/svelte/src/internal/client/dom/blocks/branches.js index ffc42fe5ad..ee4303b7ae 100644 --- a/packages/svelte/src/internal/client/dom/blocks/branches.js +++ b/packages/svelte/src/internal/client/dom/blocks/branches.js @@ -232,7 +232,7 @@ export class BranchManager { const offscreen = this.#offscreen.get(key); if (offscreen && offscreen.effect.f & FORK_ONLY_BRANCH) { if (batch.is_fork) { - batch.unskip_effect(offscreen.effect, undefined, !first); + batch.unskip_effect(offscreen.effect, !first); } else { offscreen.effect.f ^= FORK_ONLY_BRANCH; } diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js index 147f7378af..47513f2b11 100644 --- a/packages/svelte/src/internal/client/reactivity/batch.js +++ b/packages/svelte/src/internal/client/reactivity/batch.js @@ -347,22 +347,21 @@ export class Batch { * Remove an effect from the #skipped_branches map and reschedule * any tracked dirty/maybe_dirty child effects * @param {Effect} effect - * @param {(e: Effect) => void} callback * @param {boolean} is_fork_init */ - unskip_effect(effect, callback = (e) => this.schedule(e), is_fork_init = false) { + unskip_effect(effect, is_fork_init = false) { var tracked = this.#skipped_branches.get(effect); if (tracked) { this.#skipped_branches.delete(effect); for (var e of tracked.d) { set_signal_status(e, DIRTY); - callback(e); + this.schedule(e); } for (e of tracked.m) { set_signal_status(e, MAYBE_DIRTY); - callback(e); + this.schedule(e); } } if (!this.unskipped_branches.has(effect)) this.unskipped_branches.set(effect, is_fork_init);