From de2c302cdb80a3322723ff21d64b75129c00236d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 13 Dec 2022 13:09:09 +0100 Subject: [PATCH] LibWeb: Implement Node.isEqualNode() for Attr nodes --- Userland/Libraries/LibWeb/DOM/Node.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 86e1eb4a44..ae3e444a34 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -1262,8 +1262,19 @@ bool Node::is_equal_node(Node const* other_node) const return false; break; } + case (u16)NodeType::ATTRIBUTE_NODE: { + // Its namespace, local name, and value. + auto& this_attr = verify_cast(*this); + auto& other_attr = verify_cast(*other_node); + if (this_attr.namespace_uri() != other_attr.namespace_uri()) + return false; + if (this_attr.local_name() != other_attr.local_name()) + return false; + if (this_attr.value() != other_attr.value()) + return false; + break; + } case (u16)NodeType::PROCESSING_INSTRUCTION_NODE: - case (u16)NodeType::ATTRIBUTE_NODE: TODO(); default: break;