From 1e352c48accdb54775b4a31306cc0ec4f451aff4 Mon Sep 17 00:00:00 2001 From: Francis Bouvier Date: Tue, 26 Sep 2023 17:55:21 +0200 Subject: [PATCH] node: add hasChildnodes method Signed-off-by: Francis Bouvier --- src/dom/node.zig | 10 ++++++++++ src/netsurf.zig | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/dom/node.zig b/src/dom/node.zig index 8c142164..444a505b 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -150,6 +150,10 @@ pub const Node = struct { _ = self; @panic("Not implemented node.getRootNode()"); } + + pub fn _hasChildNodes(self: *parser.Node) bool { + return parser.nodeHasChildNodes(self); + } }; pub const Types = generate.Tuple(.{ @@ -290,4 +294,10 @@ pub fn testExecFn( .{ .src = "text.contains(link)", .ex = "false" }, }; try checkCases(js_env, &node_contains); + + var node_has_child_nodes = [_]Case{ + .{ .src = "link.hasChildNodes()", .ex = "true" }, + .{ .src = "text.hasChildNodes()", .ex = "false" }, + }; + try checkCases(js_env, &node_has_child_nodes); } diff --git a/src/netsurf.zig b/src/netsurf.zig index 320cbf32..f0677554 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -352,6 +352,12 @@ pub fn nodeContains(node: *Node, other: *Node) bool { return res; } +pub fn nodeHasChildNodes(node: *Node) bool { + var res: bool = undefined; + _ = nodeVtable(node).dom_node_has_child_nodes.?(node, &res); + return res; +} + // CharacterData pub const CharacterData = c.dom_characterdata;