From f5a87c0f12bd12c08cfb42f461302c4ba05b16b5 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 12 Feb 2025 19:59:43 -0500 Subject: [PATCH] all tests passing --- packages/svelte/src/internal/client/dom/blocks/boundary.js | 5 +++-- packages/svelte/src/internal/client/runtime.js | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/boundary.js b/packages/svelte/src/internal/client/dom/blocks/boundary.js index 2a79d95a5c..fd7c456e39 100644 --- a/packages/svelte/src/internal/client/dom/blocks/boundary.js +++ b/packages/svelte/src/internal/client/dom/blocks/boundary.js @@ -434,6 +434,9 @@ export class Fork { return; } + this.#boundary.commit_fork(this); + active_fork = null; + for (const e of this.#render_effects) { try { set_signal_status( @@ -470,8 +473,6 @@ export class Fork { handle_error(error, e, null, e.ctx); } } - - this.#boundary.commit_fork(this); } increment() { diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 786fa53371..04a48a06cf 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -1059,13 +1059,13 @@ export function get(signal) { recent_async_deriveds.delete(signal); } - if ((signal.f & DERIVED) === 0) { + if (active_effect !== null && (signal.f & DERIVED) === 0) { if (active_fork) { // console.log('get from fork', (signal.f & DERIVED) !== 0 ? 'derived' : 'source', signal.v); return active_fork.get(signal); } - var boundary = active_effect?.b; + var boundary = (active_effect.f & EFFECT) === 0 && active_effect.b; if (boundary) { // console.log('get from boundary', (signal.f & DERIVED) !== 0 ? 'derived' : 'source', signal.v); return boundary.get(signal);