aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 67bb5279f32..ae79327e7da 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -700,14 +700,16 @@ impl<'a> NodeHelpers<'a> for JSRef<'a, Node> {
//
// TODO(cgaebel): This is a very conservative way to account for sibling
// selectors. Maybe we can do something smarter in the future.
- let parent =
- match self.parent_node() {
- None => return,
- Some(parent) => parent,
- };
-
- for sibling in parent.root().r().children() {
- sibling.set_has_dirty_siblings(true);
+ if !self.get_has_dirty_siblings() {
+ let parent =
+ match self.parent_node() {
+ None => return,
+ Some(parent) => parent,
+ };
+
+ for sibling in parent.root().r().children() {
+ sibling.set_has_dirty_siblings(true);
+ }
}
// 4. Dirty ancestors.