From 92f705295fb0d7ccf58f6013ffc41db97c704909 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 6 Aug 2025 17:06:33 -0400 Subject: [PATCH] only call without_reactive_context when the controller exists --- .../svelte/src/internal/client/reactivity/effects.js | 10 +++++++--- packages/svelte/src/internal/client/runtime.js | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/svelte/src/internal/client/reactivity/effects.js b/packages/svelte/src/internal/client/reactivity/effects.js index a4e0ff21c9..68a1555032 100644 --- a/packages/svelte/src/internal/client/reactivity/effects.js +++ b/packages/svelte/src/internal/client/reactivity/effects.js @@ -407,9 +407,13 @@ export function destroy_effect_children(signal, remove_dom = false) { signal.first = signal.last = null; while (effect !== null) { - without_reactive_context(() => { - /** @type {Effect} */ (effect).ac?.abort(STALE_REACTION); - }); + const controller = effect.ac; + + if (controller !== null) { + without_reactive_context(() => { + controller.abort(STALE_REACTION); + }); + } var next = effect.next; diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index fe46461b16..22a1890e0f 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -282,6 +282,7 @@ export function update_reaction(reaction) { without_reactive_context(() => { /** @type {AbortController} */ (reaction.ac).abort(STALE_REACTION); }); + reaction.ac = null; }