Skip to content

Commit 2d09757

Browse files
committed
fix: output template effect for svg xlink attribute
1 parent 396ea2e commit 2d09757

File tree

5 files changed

+26
-0
lines changed

5 files changed

+26
-0
lines changed

.changeset/serious-spiders-bake.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: output template effect for svg xlink attribute

packages/svelte/src/compiler/phases/2-analyze/visitors/Attribute.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ export function Attribute(node, context) {
5252
node.metadata.expression.has_state ||= chunk.metadata.expression.has_state;
5353
node.metadata.expression.has_call ||= chunk.metadata.expression.has_call;
5454
node.metadata.expression.can_inline &&= chunk.metadata.expression.can_inline;
55+
56+
if (!node.metadata.expression.can_inline) {
57+
mark_subtree_dynamic(context.path);
58+
}
5559
}
5660

5761
if (is_event_attribute(node)) {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { test } from '../../test';
2+
3+
export default test({
4+
html: `<div><svg aria-hidden="true" height="14" width="13"><use xlink:href="test#done"></use></svg></div`
5+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script>
2+
import { sprites } from './sprites.js'
3+
</script>
4+
5+
<div>
6+
<svg width="13" height="14" aria-hidden="true">
7+
<use xlink:href="{sprites['a']}#done"></use>
8+
</svg>
9+
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const sprites = {
2+
a: 'test'
3+
};

0 commit comments

Comments
 (0)