LibWeb: Return a NodeList from document.getElementsByName()

This aligns our implementation with the specification.
This commit is contained in:
Tim Ledbetter 2024-07-22 21:44:05 +01:00 committed by Andreas Kling
commit bd1213d0c5
Notes: github-actions[bot] 2024-07-23 06:59:11 +00:00
3 changed files with 8 additions and 5 deletions

View file

@ -47,6 +47,7 @@
#include <LibWeb/DOM/ElementFactory.h>
#include <LibWeb/DOM/Event.h>
#include <LibWeb/DOM/HTMLCollection.h>
#include <LibWeb/DOM/LiveNodeList.h>
#include <LibWeb/DOM/NodeIterator.h>
#include <LibWeb/DOM/ProcessingInstruction.h>
#include <LibWeb/DOM/Range.h>
@ -1394,10 +1395,12 @@ void Document::set_hovered_node(Node* node)
}
}
JS::NonnullGCPtr<HTMLCollection> Document::get_elements_by_name(FlyString const& name)
JS::NonnullGCPtr<NodeList> Document::get_elements_by_name(FlyString const& name)
{
return HTMLCollection::create(*this, HTMLCollection::Scope::Descendants, [name](Element const& element) {
return element.name() == name;
return LiveNodeList::create(realm(), *this, LiveNodeList::Scope::Descendants, [name](auto const& node) {
if (!is<Element>(node))
return false;
return verify_cast<Element>(node).name() == name;
});
}