From 2620a2189fbcc11565bc69b59dfa4b3896c3003a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 19 Apr 2025 13:16:53 -0400 Subject: [PATCH] tweak --- .../src/internal/client/dom/blocks/boundary.js | 4 ++++ .../src/internal/client/reactivity/deriveds.js | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index 1738a27ff2..a71f604707 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -228,6 +228,8 @@ export class Boundary { }); } + this.ran = false; + this.#main_effect = this.#run(() => { this.#is_creating_fallback = false; @@ -238,6 +240,8 @@ export class Boundary { } }); + this.ran = true; + if (this.#pending_count > 0) { this.#show_pending_snippet(); } diff --git a/packages/svelte/src/internal/client/reactivity/deriveds.js b/packages/svelte/src/internal/client/reactivity/deriveds.js index 17f41d856f..6b2ea3d39b 100644 --- a/packages/svelte/src/internal/client/reactivity/deriveds.js +++ b/packages/svelte/src/internal/client/reactivity/deriveds.js @@ -124,13 +124,13 @@ export function async_derived(fn, location) { var restore = capture(); var fork = active_fork; + var ran = boundary.ran; if (should_suspend) { - if (fork !== null) { - fork.increment(); - } else { - // if nearest pending boundary is not ready, attach to the boundary + if (!ran) { boundary.increment(); + } else { + fork?.increment(); } } @@ -144,10 +144,10 @@ export function async_derived(fn, location) { from_async_derived = null; if (should_suspend) { - if (fork !== null) { - fork.decrement(); - } else { + if (!ran) { boundary.decrement(); + } else { + fork?.decrement(); } }