diff --git a/src/dom/node.zig b/src/dom/node.zig index 4a85e23a..c64ae630 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -169,6 +169,10 @@ pub const Node = struct { return parser.nodeIsEqualNode(self, other); } + pub fn _normalize(self: *parser.Node) void { + return parser.nodeNormalize(self); + } + pub fn _removeChild(self: *parser.Node, child: *parser.Node) Union { const res = parser.nodeRemoveChild(self, child); return Node.toInterface(res); @@ -349,6 +353,12 @@ pub fn testExecFn( }; try checkCases(js_env, &node_is_equal_node); + var node_normalize = [_]Case{ + // TODO: no test + .{ .src = "link.normalize()", .ex = "undefined" }, + }; + try checkCases(js_env, &node_normalize); + var node_remove_child = [_]Case{ .{ .src = "content.removeChild(append) !== undefined", .ex = "true" }, .{ .src = "content.lastChild.__proto__.constructor.name !== 'HTMLHeadingElement'", .ex = "true" }, diff --git a/src/netsurf.zig b/src/netsurf.zig index 0e353998..d78474eb 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -377,6 +377,10 @@ pub fn nodeIsEqualNode(node: *Node, other: *Node) bool { return res; } +pub fn nodeNormalize(node: *Node) void { + _ = nodeVtable(node).dom_node_normalize.?(node); +} + pub fn nodeRemoveChild(node: *Node, child: *Node) *Node { var res: ?*Node = undefined; _ = nodeVtable(node).dom_node_remove_child.?(node, child, &res);