diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index 48aa8ab7fe5..b776e74ed90 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -140,8 +140,8 @@ impl HTMLCollection {
classes: Vec
}
impl CollectionFilter for ClassNameFilter {
- fn filter(&self, elem: JSRef, _root: JSRef) -> bool {
- self.classes.iter().all(|class| elem.has_class(class))
+ fn filter(&self, elem: JSRef, root: JSRef) -> bool {
+ (NodeCast::from_ref(elem) != root) && self.classes.iter().all(|class| elem.has_class(class))
}
}
let filter = ClassNameFilter {
diff --git a/tests/wpt/metadata/dom/nodes/getElementsByClassName-12.htm.ini b/tests/wpt/metadata/dom/nodes/getElementsByClassName-12.htm.ini
deleted file mode 100644
index e27303c0fe0..00000000000
--- a/tests/wpt/metadata/dom/nodes/getElementsByClassName-12.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[getElementsByClassName-12.htm]
- type: testharness
- [element.getElementsByClassName(): simple]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/dom/nodes/getElementsByClassName-13.htm.ini b/tests/wpt/metadata/dom/nodes/getElementsByClassName-13.htm.ini
deleted file mode 100644
index d7699df380c..00000000000
--- a/tests/wpt/metadata/dom/nodes/getElementsByClassName-13.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[getElementsByClassName-13.htm]
- type: testharness
- [element.getElementsByClassName(): adding an element]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/dom/nodes/getElementsByClassName-18.htm.ini b/tests/wpt/metadata/dom/nodes/getElementsByClassName-18.htm.ini
deleted file mode 100644
index 95c4a3ef759..00000000000
--- a/tests/wpt/metadata/dom/nodes/getElementsByClassName-18.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[getElementsByClassName-18.htm]
- type: testharness
- [element.getElementsByClassName(array): "a", "b"]
- expected: FAIL
-