Skip to content

Commit b0819b7

Browse files
committed
fix: ensure svg namespace persists from parent of if blocks
1 parent 2bfdd1b commit b0819b7

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

.changeset/nine-buses-own.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: ensure svg namespace persists from parent of if blocks

packages/svelte/src/compiler/phases/3-transform/utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,11 @@ export function infer_namespace(namespace, parent, nodes) {
347347
}
348348
}
349349

350+
// If we're already in a non-html namespace, continue using that
351+
if (namespace !== 'html') {
352+
return namespace;
353+
}
354+
350355
/** @type {Namespace | null} */
351356
let new_namespace = null;
352357

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { test, ok } from '../../test';
2+
3+
export default test({
4+
html: `<svg><a href="/docs"><text class="small" x="20" y="40"></text></a></svg>`,
5+
test({ assert, target }) {
6+
const a = target.querySelector('a');
7+
ok(a);
8+
9+
assert.equal(a.namespaceURI, 'http://www.w3.org/2000/svg');
10+
}
11+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<svg>
2+
{#if true}
3+
<a href="/docs">
4+
<text x="20" y="40" class="small">{name}</text>
5+
</a>
6+
{/if}
7+
</svg>

0 commit comments

Comments
 (0)