mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:18:11 +00:00
LibWeb: Convert Node.childNodes to NodeList
This changes the old child_nodes implementation to children_as_vector so that can still be used in insert_before.
This commit is contained in:
parent
2f7fb1fe63
commit
6a7739c645
3 changed files with 15 additions and 5 deletions
|
@ -20,6 +20,7 @@
|
|||
#include <LibWeb/DOM/Event.h>
|
||||
#include <LibWeb/DOM/EventDispatcher.h>
|
||||
#include <LibWeb/DOM/EventListener.h>
|
||||
#include <LibWeb/DOM/LiveNodeList.h>
|
||||
#include <LibWeb/DOM/Node.h>
|
||||
#include <LibWeb/DOM/ProcessingInstruction.h>
|
||||
#include <LibWeb/DOM/ShadowRoot.h>
|
||||
|
@ -258,7 +259,7 @@ void Node::insert_before(NonnullRefPtr<Node> node, RefPtr<Node> child, bool supp
|
|||
{
|
||||
NonnullRefPtrVector<Node> nodes;
|
||||
if (is<DocumentFragment>(*node))
|
||||
nodes = verify_cast<DocumentFragment>(*node).child_nodes();
|
||||
nodes = verify_cast<DocumentFragment>(*node).children_as_vector();
|
||||
else
|
||||
nodes.append(node);
|
||||
|
||||
|
@ -591,7 +592,16 @@ ParentNode* Node::parent_or_shadow_host()
|
|||
return verify_cast<ParentNode>(parent());
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Node> Node::child_nodes() const
|
||||
NonnullRefPtr<NodeList> Node::child_nodes()
|
||||
{
|
||||
// FIXME: This should return the same LiveNodeList object every time,
|
||||
// but that would cause a reference cycle since NodeList refs the root.
|
||||
return LiveNodeList::create(*this, [this](auto& node) {
|
||||
return is_parent_of(node);
|
||||
});
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Node> Node::children_as_vector() const
|
||||
{
|
||||
NonnullRefPtrVector<Node> nodes;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue