aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-07-04 12:35:19 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-07-04 14:52:34 +0200
commit345eee92e8877c66764f4775ca477cc6ad73c366 (patch)
treef7f833992fa27ba86310c98cbd47cbc7db333fab /components/script/dom/node.rs
parent110fd6861007544b4f5b15d49da4f297c200bd7c (diff)
downloadservo-345eee92e8877c66764f4775ca477cc6ad73c366.tar.gz
servo-345eee92e8877c66764f4775ca477cc6ad73c366.zip
Skip the root node in querySelectorAll
This accounts for https://github.com/whatwg/dom/issues/263.
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index ec370dff293..871eb4b13ca 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -740,7 +740,10 @@ impl Node {
Err(()) => Err(Error::Syntax),
// Step 3.
Ok(selectors) => {
- Ok(QuerySelectorIterator::new(self.traverse_preorder(), selectors))
+ let mut descendants = self.traverse_preorder();
+ // Skip the root of the tree.
+ assert!(&*descendants.next().unwrap() == self);
+ Ok(QuerySelectorIterator::new(descendants, selectors))
}
}
}