Skip to content

Commit df00d08

Browse files
node: add isEqualNode method (TEST NOT WORKING)
Signed-off-by: Francis Bouvier <[email protected]>
1 parent 6f67edf commit df00d08

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/dom/node.zig

+15
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ pub const Node = struct {
163163
// TODO: namespace is not an optional parameter, but can be null.
164164
return parser.nodeIsDefaultNamespace(self, namespace);
165165
}
166+
167+
pub fn _isEqualNode(self: *parser.Node, other: *parser.Node) bool {
168+
// TODO: other is not an optional parameter, but can be null.
169+
return parser.nodeIsEqualNode(self, other);
170+
}
166171
};
167172

168173
pub const Types = generate.Tuple(.{
@@ -323,4 +328,14 @@ pub fn testExecFn(
323328
.{ .src = "link.isDefaultNamespace('false')", .ex = "false" },
324329
};
325330
try checkCases(js_env, &node_is_default_namespace);
331+
332+
var node_is_equal_node = [_]Case{
333+
.{ .src = "let equal1 = document.createElement('a')", .ex = "undefined" },
334+
.{ .src = "let equal2 = document.createElement('a')", .ex = "undefined" },
335+
.{ .src = "equal1.textContent = 'is equal'", .ex = "is equal" },
336+
.{ .src = "equal2.textContent = 'is equal'", .ex = "is equal" },
337+
// TODO: does not seems to work
338+
// .{ .src = "equal1.isEqualNode(equal2)", .ex = "true" },
339+
};
340+
try checkCases(js_env, &node_is_equal_node);
326341
}

src/netsurf.zig

+6
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,12 @@ pub fn nodeIsDefaultNamespace(node: *Node, namespace: []const u8) bool {
371371
return res;
372372
}
373373

374+
pub fn nodeIsEqualNode(node: *Node, other: *Node) bool {
375+
var res: bool = undefined;
376+
_ = nodeVtable(node).dom_node_is_equal.?(node, other, &res);
377+
return res;
378+
}
379+
374380
// CharacterData
375381
pub const CharacterData = c.dom_characterdata;
376382

0 commit comments

Comments
 (0)