node: add isEqualNode method (TEST NOT WORKING)

Signed-off-by: Francis Bouvier <francis.bouvier@gmail.com>
This commit is contained in:
Francis Bouvier
2023-09-26 21:41:09 +02:00
parent a07d9829de
commit 012622fc5f
2 changed files with 21 additions and 0 deletions

View File

@@ -163,6 +163,11 @@ pub const Node = struct {
// TODO: namespace is not an optional parameter, but can be null.
return parser.nodeIsDefaultNamespace(self, namespace);
}
pub fn _isEqualNode(self: *parser.Node, other: *parser.Node) bool {
// TODO: other is not an optional parameter, but can be null.
return parser.nodeIsEqualNode(self, other);
}
};
pub const Types = generate.Tuple(.{
@@ -323,4 +328,14 @@ pub fn testExecFn(
.{ .src = "link.isDefaultNamespace('false')", .ex = "false" },
};
try checkCases(js_env, &node_is_default_namespace);
var node_is_equal_node = [_]Case{
.{ .src = "let equal1 = document.createElement('a')", .ex = "undefined" },
.{ .src = "let equal2 = document.createElement('a')", .ex = "undefined" },
.{ .src = "equal1.textContent = 'is equal'", .ex = "is equal" },
.{ .src = "equal2.textContent = 'is equal'", .ex = "is equal" },
// TODO: does not seems to work
// .{ .src = "equal1.isEqualNode(equal2)", .ex = "true" },
};
try checkCases(js_env, &node_is_equal_node);
}

View File

@@ -371,6 +371,12 @@ pub fn nodeIsDefaultNamespace(node: *Node, namespace: []const u8) bool {
return res;
}
pub fn nodeIsEqualNode(node: *Node, other: *Node) bool {
var res: bool = undefined;
_ = nodeVtable(node).dom_node_is_equal.?(node, other, &res);
return res;
}
// CharacterData
pub const CharacterData = c.dom_characterdata;