diff --git a/.changeset/chatty-papers-sing.md b/.changeset/chatty-papers-sing.md deleted file mode 100644 index 4d85b91bfc..0000000000 --- a/.changeset/chatty-papers-sing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'svelte': patch ---- - -fix: skip derived re-evaluation inside inert effect blocks diff --git a/packages/svelte/src/internal/client/reactivity/deriveds.js b/packages/svelte/src/internal/client/reactivity/deriveds.js index 2c9b9da33e..7df7651294 100644 --- a/packages/svelte/src/internal/client/reactivity/deriveds.js +++ b/packages/svelte/src/internal/client/reactivity/deriveds.js @@ -10,8 +10,7 @@ import { ASYNC, WAS_MARKED, DESTROYED, - CLEAN, - INERT + CLEAN } from '#client/constants'; import { active_reaction, @@ -306,22 +305,10 @@ function get_derived_parent_effect(derived) { * @returns {T} */ export function execute_derived(derived) { - var parent_effect = get_derived_parent_effect(derived); - - // don't update `{@const ...}` in an outroing block - if ( - !async_mode_flag && - !is_destroying_effect && - parent_effect !== null && - (parent_effect.f & INERT) !== 0 - ) { - return derived.v; - } - var value; var prev_active_effect = active_effect; - set_active_effect(parent_effect); + set_active_effect(get_derived_parent_effect(derived)); if (DEV) { let prev_eager_effects = eager_effects; diff --git a/packages/svelte/tests/runtime-runes/samples/if-block-const-inert-derived/_config.js b/packages/svelte/tests/runtime-runes/samples/if-block-const-inert-derived/_config.js deleted file mode 100644 index b803182079..0000000000 --- a/packages/svelte/tests/runtime-runes/samples/if-block-const-inert-derived/_config.js +++ /dev/null @@ -1,18 +0,0 @@ -import { flushSync, tick } from 'svelte'; -import { test } from '../../test'; - -export default test({ - html: '
hello
{result.data}
-