From 7bbfc1a8715348e4933e353ccedca5c6aa45a8d3 Mon Sep 17 00:00:00 2001 From: Francis Bouvier Date: Sun, 12 Jul 2026 12:10:00 +0200 Subject: [PATCH] webapi: assigning outerText to a MathML element leaves the tree alone Fixes the last failing subtest of WPT /html/dom/elements/ the-innertext-and-outertext-properties/outertext-setter.html (42/43 -> 43/43): outerText is an HTMLElement property, so assigning it on a MathML element must not replace the element. MathML elements currently share the HTML wrapper types (giving them a plain Element wrapper is part of the pending element-interface work), so they expose the outerText setter; it now stays inert for non-HTML namespaces. Coverage: outertext-setter.html 42/43 -> 43/43 (fully green). Co-Authored-By: Claude Fable 5 --- src/browser/webapi/element/Html.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/browser/webapi/element/Html.zig b/src/browser/webapi/element/Html.zig index 67924b0c5..ba12adb30 100644 --- a/src/browser/webapi/element/Html.zig +++ b/src/browser/webapi/element/Html.zig @@ -243,6 +243,11 @@ pub fn setInnerText(self: *HtmlElement, text: []const u8, frame: *Frame) !void { pub fn setOuterText(self: *HtmlElement, text: []const u8, frame: *Frame) !void { const el = self.asElement(); + // outerText is an HTMLElement property. MathML elements currently share + // the HTML wrapper types, so keep the assignment inert for them. + if (el._namespace != .html) { + return; + } const node = el.asNode(); const parent = node.parentNode() orelse return error.NoModificationAllowed;