From 890297ef0a448edbe074e23fb98f2b6054c03e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Fri, 8 Mar 2019 08:01:09 +0100 Subject: [PATCH] Optimize Node::GetRootNode --- components/script/dom/node.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 8a879c481ab..4ceb4305ddf 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -2279,9 +2279,15 @@ impl NodeMethods for Node { return shadow_root.Host().upcast::().GetRootNode(options); } } - self.inclusive_ancestors(ShadowIncluding::No) - .last() - .unwrap() + if let Some(shadow_root) = self.rare_data.owner_shadow_root.get() { + DomRoot::from_ref(shadow_root.upcast::()) + } else if self.is_in_doc() { + DomRoot::from_ref(self.owner_doc().upcast::()) + } else { + self.inclusive_ancestors(ShadowIncluding::No) + .last() + .unwrap() + } } // https://dom.spec.whatwg.org/#dom-node-parentnode