Skip to content

Commit d6e0fbd

Browse files
authored
fix: handle member expressions in directives (#10576)
1 parent 802bfca commit d6e0fbd

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

.changeset/good-rivers-yawn.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte": patch
3+
---
4+
5+
fix: handle member expressions in directives

packages/svelte/src/compiler/phases/scope.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) {
334334
* @type {import('zimmerframe').Visitor<import('#compiler').AnimateDirective | import('#compiler').TransitionDirective | import('#compiler').UseDirective, State, import('#compiler').SvelteNode>}
335335
*/
336336
const SvelteDirective = (node, { state, path, visit }) => {
337-
state.scope.reference(b.id(node.name), path);
337+
state.scope.reference(b.id(node.name.split('.')[0]), path);
338338

339339
if (node.expression) {
340340
visit(node.expression);
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<script>
22
import { writable } from 'svelte/store';
33
4-
let action = writable((node, text) => {
4+
let store = writable({action: (node, text) => {
55
node.textContent = text;
6-
});
6+
return {
7+
destroy() {}
8+
}
9+
}});
710
8-
let text = writable('mounted')
11+
let text = writable('mounted');
912
</script>
1013

11-
<div use:$action={$text}>hello</div>
14+
<div use:$store.action={$text}>hello</div>

0 commit comments

Comments
 (0)