diff --git a/packages/svelte/src/compiler/phases/3-transform/utils.js b/packages/svelte/src/compiler/phases/3-transform/utils.js index b7592f6f81..4663a53b8f 100644 --- a/packages/svelte/src/compiler/phases/3-transform/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/utils.js @@ -222,7 +222,7 @@ export function infer_namespace(namespace, parent, nodes, path) { only_svg = false; break; } - } else if (node.type !== 'Text' || node.data.trim() !== '') { + } else if (node.type !== 'Comment' && (node.type !== 'Text' || node.data.trim() !== '')) { only_svg = false; } } diff --git a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte new file mode 100644 index 0000000000..41f3f38fa8 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/Wrapper.svelte @@ -0,0 +1,13 @@ +outside + +{#if true} + true +{:else} + false +{/if} + +{#each Array(3).fill(0) as item, idx} + {idx} +{/each} + + diff --git a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js new file mode 100644 index 0000000000..46118026af --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/_config.js @@ -0,0 +1,26 @@ +import { test, ok } from '../../test'; + +export default test({ + html: ` + + outside + true + 0 + 1 + 2 + +`, + test({ assert, target }) { + const svg = target.querySelector('svg'); + ok(svg); + + assert.equal(svg.namespaceURI, 'http://www.w3.org/2000/svg'); + + const text_elements = target.querySelectorAll('text'); + + assert.equal(text_elements.length, 5); + + for (const { namespaceURI } of text_elements) + assert.equal(namespaceURI, 'http://www.w3.org/2000/svg'); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/main.svelte b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/main.svelte new file mode 100644 index 0000000000..7c1253ea7e --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/svg-namespace-infer/main.svelte @@ -0,0 +1,7 @@ + + + + +