aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlcollection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlcollection.rs')
-rw-r--r--components/script/dom/htmlcollection.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index a6e216cffdb..a2cf605bc7e 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -164,12 +164,13 @@ impl HTMLCollection {
HTMLCollection::create(window, root, box ElementChildFilter)
}
- fn traverse<'a>(root: JSRef<'a, Node>)
- -> FilterMap<Skip<TreeIterator<'a>>,
- fn(JSRef<Node>) -> Option<JSRef<Element>>> {
+ fn traverse(root: JSRef<Node>)
+ -> FilterMap<Skip<TreeIterator>,
+ fn(Temporary<Node>) -> Option<Temporary<Element>>> {
root.traverse_preorder()
.skip(1)
- .filter_map(ElementCast::to_ref as fn(JSRef<Node>) -> Option<JSRef<Element>>)
+ .filter_map(ElementCast::to_temporary as
+ fn(Temporary<Node>) -> Option<Temporary<Element>>)
}
}
@@ -181,7 +182,7 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> {
CollectionTypeId::Live(ref root, ref filter) => {
let root = root.root();
HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(*element, root.r()))
+ .filter(|element| filter.filter(element.root().r(), root.r()))
.count() as u32
}
}
@@ -198,10 +199,8 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> {
CollectionTypeId::Live(ref root, ref filter) => {
let root = root.root();
HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(*element, root.r()))
+ .filter(|element| filter.filter(element.root().r(), root.r()))
.nth(index)
- .clone()
- .map(Temporary::from_rooted)
}
}
}
@@ -224,11 +223,12 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> {
CollectionTypeId::Live(ref root, ref filter) => {
let root = root.root();
HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(*element, root.r()))
+ .map(|element| element.root())
+ .filter(|element| filter.filter(element.r(), root.r()))
.find(|elem| {
- elem.get_string_attribute(&atom!("name")) == key ||
- elem.get_string_attribute(&atom!("id")) == key })
- .map(Temporary::from_rooted)
+ elem.r().get_string_attribute(&atom!("name")) == key ||
+ elem.r().get_string_attribute(&atom!("id")) == key })
+ .map(|elem| Temporary::from_rooted(elem.r()))
}
}
}