aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmltableelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmltableelement.rs')
-rw-r--r--components/script/dom/htmltableelement.rs22
1 files changed, 9 insertions, 13 deletions
diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index b4b3fceed9d..6699bc5975a 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -300,20 +300,16 @@ impl HTMLTableElementMethods<crate::DomTypeHolder> for HTMLTableElement {
// https://html.spec.whatwg.org/multipage/#dom-table-tbodies
fn TBodies(&self) -> DomRoot<HTMLCollection> {
- #[derive(JSTraceable)]
- struct TBodiesFilter;
- impl CollectionFilter for TBodiesFilter {
- fn filter(&self, elem: &Element, root: &Node) -> bool {
- elem.is::<HTMLTableSectionElement>() &&
- elem.local_name() == &local_name!("tbody") &&
- elem.upcast::<Node>().GetParentNode().as_deref() == Some(root)
- }
- }
-
self.tbodies.or_init(|| {
- let window = window_from_node(self);
- let filter = Box::new(TBodiesFilter);
- HTMLCollection::create(&window, self.upcast(), filter)
+ HTMLCollection::new_with_filter_fn(
+ &window_from_node(self),
+ self.upcast(),
+ |element, root| {
+ element.is::<HTMLTableSectionElement>() &&
+ element.local_name() == &local_name!("tbody") &&
+ element.upcast::<Node>().GetParentNode().as_deref() == Some(root)
+ },
+ )
})
}