diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index 0d9e0ae3c1..aedff7765f 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -374,6 +374,8 @@ export class Boundary { } export class Fork { + suspended = false; + /** @type {Boundary} */ #boundary; @@ -459,14 +461,14 @@ export class Fork { } increment() { - this.#pending_count++; - this.suspended = true; + if (this.#pending_count++ === 0) { + this.suspended = true; + } } decrement() { if (--this.#pending_count === 0) { this.suspended = false; - // this.commit(); } } diff --git a/packages/svelte/src/internal/client/reactivity/effects.js b/packages/svelte/src/internal/client/reactivity/effects.js index 50d8093392..966add41a3 100644 --- a/packages/svelte/src/internal/client/reactivity/effects.js +++ b/packages/svelte/src/internal/client/reactivity/effects.js @@ -359,6 +359,7 @@ export function template_effect(fn, sync = [], async = [], d = derived) { } create_template_effect(fn, [...sync.map(d), ...result]); + schedule_effect(effect); unsuspend(); });