diff --git a/packages/svelte/src/internal/client/reactivity/effects.js b/packages/svelte/src/internal/client/reactivity/effects.js index 6c7c21d7dc..ca1da7f9cd 100644 --- a/packages/svelte/src/internal/client/reactivity/effects.js +++ b/packages/svelte/src/internal/client/reactivity/effects.js @@ -114,8 +114,13 @@ function create_effect(type, fn, sync, push = true) { } if (sync) { - update_effect(effect); - effect.f |= EFFECT_RAN; + try { + update_effect(effect); + effect.f |= EFFECT_RAN; + } catch (e) { + destroy_effect(effect); + throw e; + } } else if (fn !== null) { schedule_effect(effect); }