diff --git a/.changeset/state-eager-let-declaration.md b/.changeset/state-eager-let-declaration.md new file mode 100644 index 0000000000..6939094109 --- /dev/null +++ b/.changeset/state-eager-let-declaration.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: keep `$state.eager` when used as a variable initializer diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js index 246feaccf6..0ad52dc457 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js @@ -35,6 +35,7 @@ export function VariableDeclaration(node, context) { rune === '$inspect' || rune === '$inspect.trace' || rune === '$state.snapshot' || + rune === '$state.eager' || rune === '$host' ) { declarations.push(/** @type {VariableDeclarator} */ (context.visit(declarator))); diff --git a/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/_config.js b/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/_config.js new file mode 100644 index 0000000000..61811ad0d6 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/_config.js @@ -0,0 +1,5 @@ +import { test } from '../../test'; + +export default test({ + html: `

20

` +}); diff --git a/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/main.svelte b/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/main.svelte new file mode 100644 index 0000000000..ed5e175c55 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/state-eager-declaration/main.svelte @@ -0,0 +1,7 @@ + + +

{x}