From bdf033e30f40b7b40792eafe694a02ce84387089 Mon Sep 17 00:00:00 2001
From: Simon H <5968653+dummdidumm@users.noreply.github.com>
Date: Mon, 14 Apr 2025 14:56:43 +0200
Subject: [PATCH] fix: allow self-closing tags within math namespace (#15761)
fixes #15757
---
.changeset/wicked-cheetahs-juggle.md | 5 +++++
.../compiler/phases/2-analyze/visitors/RegularElement.js | 3 ++-
.../samples/invalid-self-closing-tag/input.svelte | 1 +
.../samples/invalid-self-closing-tag/warnings.json | 8 ++++----
4 files changed, 12 insertions(+), 5 deletions(-)
create mode 100644 .changeset/wicked-cheetahs-juggle.md
diff --git a/.changeset/wicked-cheetahs-juggle.md b/.changeset/wicked-cheetahs-juggle.md
new file mode 100644
index 0000000000..58dca62bec
--- /dev/null
+++ b/.changeset/wicked-cheetahs-juggle.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: allow self-closing tags within math namespace
diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
index 03dfaebcb7..d5689e5d55 100644
--- a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
+++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
@@ -173,7 +173,8 @@ export function RegularElement(node, context) {
if (
context.state.analysis.source[node.end - 2] === '/' &&
!is_void(node_name) &&
- !is_svg(node_name)
+ !is_svg(node_name) &&
+ !is_mathml(node_name)
) {
w.element_invalid_self_closing_tag(node, node.name);
}
diff --git a/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte b/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
index 376c9f79bd..07582e8343 100644
--- a/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
+++ b/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
@@ -1,6 +1,7 @@
+