From 222d316c835019ce64603180e4a73b231b788d76 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 17 Apr 2020 12:27:45 -0400 Subject: Bug 1425685 - Implement HTMLSlotElement.assignedElements(); Tag #1375 --- dom/html/HTMLSlotElement.cpp | 11 +++++++++++ dom/html/HTMLSlotElement.h | 3 +++ 2 files changed, 14 insertions(+) (limited to 'dom/html') diff --git a/dom/html/HTMLSlotElement.cpp b/dom/html/HTMLSlotElement.cpp index 18b8ef87b..1c17037af 100644 --- a/dom/html/HTMLSlotElement.cpp +++ b/dom/html/HTMLSlotElement.cpp @@ -168,6 +168,17 @@ HTMLSlotElement::AssignedNodes(const AssignedNodesOptions& aOptions, aNodes = mAssignedNodes; } +void HTMLSlotElement::AssignedElements(const AssignedNodesOptions& aOptions, + nsTArray>& aElements) { + AutoTArray, 128> assignedNodes; + AssignedNodes(aOptions, assignedNodes); + for (const RefPtr& assignedNode : assignedNodes) { + if (assignedNode->IsElement()) { + aElements.AppendElement(assignedNode->AsElement()); + } + } +} + const nsTArray>& HTMLSlotElement::AssignedNodes() const { diff --git a/dom/html/HTMLSlotElement.h b/dom/html/HTMLSlotElement.h index 0494a654e..51affc2af 100644 --- a/dom/html/HTMLSlotElement.h +++ b/dom/html/HTMLSlotElement.h @@ -55,6 +55,9 @@ public: void AssignedNodes(const AssignedNodesOptions& aOptions, nsTArray>& aNodes); + void AssignedElements(const AssignedNodesOptions& aOptions, + nsTArray>& aNodes); + // Helper methods const nsTArray>& AssignedNodes() const; void InsertAssignedNode(uint32_t aIndex, nsINode* aNode); -- cgit v1.2.3