diff --git a/components/script/page.rs b/components/script/page.rs index 67cb1ca46ed..653efe700b9 100644 --- a/components/script/page.rs +++ b/components/script/page.rs @@ -43,12 +43,14 @@ impl IterablePage for Rc { } } fn find(&self, id: PipelineId) -> Option> { - if self.id == id { return Some(self.clone()); } - for page in &*self.children.borrow() { - let found = page.find(id); - if found.is_some() { return found; } + if self.id == id { + return Some(self.clone()); } - None + + self.children.borrow() + .iter() + .filter_map(|p| p.find(id)) + .next() } }