From 3f39ac785a0bb9d79aa406eec9297d42161cf254 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 25 Mar 2024 17:30:13 -0400 Subject: [PATCH] breaking: always run pre effects synchronously --- .changeset/few-clouds-shop.md | 5 +++++ packages/svelte/src/internal/client/reactivity/effects.js | 5 ++--- .../runtime-runes/samples/pre-effect-ordering/_config.js | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 .changeset/few-clouds-shop.md diff --git a/.changeset/few-clouds-shop.md b/.changeset/few-clouds-shop.md new file mode 100644 index 0000000000..c21f6eef6c --- /dev/null +++ b/.changeset/few-clouds-shop.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +breaking: always run pre effects immediately diff --git a/packages/svelte/src/internal/client/reactivity/effects.js b/packages/svelte/src/internal/client/reactivity/effects.js index f7fb734b82..2e631083d4 100644 --- a/packages/svelte/src/internal/client/reactivity/effects.js +++ b/packages/svelte/src/internal/client/reactivity/effects.js @@ -142,9 +142,8 @@ export function pre_effect(fn) { : '') ); } - const sync = current_effect !== null && (current_effect.f & RENDER_EFFECT) !== 0; - return create_effect(PRE_EFFECT, fn, sync); + return create_effect(PRE_EFFECT, fn, true); } /** @@ -206,7 +205,7 @@ export function render_effect(fn, managed = false) { let flags = RENDER_EFFECT; if (managed) flags |= MANAGED; - return create_effect(flags, /** @type {any} */ (fn), true); + return create_effect(flags, fn, true); } /** diff --git a/packages/svelte/tests/runtime-runes/samples/pre-effect-ordering/_config.js b/packages/svelte/tests/runtime-runes/samples/pre-effect-ordering/_config.js index 00463c2e18..a8fa909b33 100644 --- a/packages/svelte/tests/runtime-runes/samples/pre-effect-ordering/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/pre-effect-ordering/_config.js @@ -19,14 +19,14 @@ export default test({ assert.deepEqual(log, [ 'Outer Effect Start (0)', - 'Outer Effect End (0)', 'Inner Effect (0)', + 'Outer Effect End (0)', 'Outer Effect Start (1)', - 'Outer Effect End (1)', 'Inner Effect (1)', + 'Outer Effect End (1)', 'Outer Effect Start (2)', - 'Outer Effect End (2)', - 'Inner Effect (2)' + 'Inner Effect (2)', + 'Outer Effect End (2)' ]); } });