From bba9c8f65296160ec0603842a0b365505705c3e8 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Thu, 17 Jul 2025 10:00:38 +0800 Subject: [PATCH] Add element.remove() (needed by reddit) --- src/browser/dom/element.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/browser/dom/element.zig b/src/browser/dom/element.zig index f1c9eb3a..02ad9e7f 100644 --- a/src/browser/dom/element.zig +++ b/src/browser/dom/element.zig @@ -508,6 +508,12 @@ pub const Element = struct { _ = opts; return Animation.constructor(effect, null); } + + pub fn _remove(self: *parser.Element) !void { + const as_node: *parser.Node = @ptrCast(self); + const parent = try parser.nodeParentNode(as_node) orelse return; + _ = try Node._removeChild(parent, as_node); + } }; // Tests @@ -767,4 +773,13 @@ test "Browser.DOM.Element" { .{ "fc; (fc = document.createElement('div')).innerHTML = '

hello

" }, }, .{}); + + try runner.testCases(&.{ + .{ "const rm = document.createElement('div')", null }, + .{ "rm.id = 'to-remove'", null }, + .{ "document.getElementsByTagName('body')[0].appendChild(rm)", null }, + .{ "document.getElementById('to-remove') != null", "true" }, + .{ "rm.remove()", "undefined" }, + .{ "document.getElementById('to-remove') != null", "false" }, + }, .{}); }