diff --git a/.changeset/good-rivers-yawn.md b/.changeset/good-rivers-yawn.md new file mode 100644 index 000000000000..c0206f2b9ef7 --- /dev/null +++ b/.changeset/good-rivers-yawn.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: handle member expressions in directives diff --git a/packages/svelte/src/compiler/phases/scope.js b/packages/svelte/src/compiler/phases/scope.js index 79d7877f5438..dea556f9c84f 100644 --- a/packages/svelte/src/compiler/phases/scope.js +++ b/packages/svelte/src/compiler/phases/scope.js @@ -334,7 +334,7 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) { * @type {import('zimmerframe').Visitor} */ const SvelteDirective = (node, { state, path, visit }) => { - state.scope.reference(b.id(node.name), path); + state.scope.reference(b.id(node.name.split('.')[0]), path); if (node.expression) { visit(node.expression); diff --git a/packages/svelte/tests/runtime-runes/samples/store-directive/main.svelte b/packages/svelte/tests/runtime-runes/samples/store-directive/main.svelte index 14166c48f235..70c18ffce0aa 100644 --- a/packages/svelte/tests/runtime-runes/samples/store-directive/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/store-directive/main.svelte @@ -1,11 +1,14 @@ -
hello
+
hello