Auto merge of #13280 - tizianasellitto:issue_13019, r=jdm

Make DOMTokenList Iterable

Make DOMTokenList Iterable.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13019
- [X] There are tests for these changes (It adds tests/wpt/web-platform-tests/dom/lists/DOMTokenList-Iterable.html)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13280)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-09-15 18:33:53 -05:00 committed by GitHub
commit e3d946bb29
3 changed files with 45 additions and 1 deletions

View file

@ -25,4 +25,5 @@ interface DOMTokenList {
attribute DOMString value;
stringifier;
iterable<DOMString?>;
};

View file

@ -37478,7 +37478,16 @@
"local_changes": {
"deleted": [],
"deleted_reftests": {},
"items": {},
"items": {
"testharness": {
"dom/lists/DOMTokenList-Iterable.html": [
{
"path": "dom/lists/DOMTokenList-Iterable.html",
"url": "/dom/lists/DOMTokenList-Iterable.html"
}
]
}
},
"reftest_nodes": {}
},
"reftest_nodes": {

View file

@ -0,0 +1,34 @@
<!doctype html>
<meta charset="utf-8">
<title>DOMTokenList Iterable Test</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<span class="foo Foo foo "></span>
<script>
var elementClasses;
setup(function() {
elementClasses = document.querySelector("span").classList;
})
test(function() {
assert_true('length' in elementClasses);
}, 'DOMTokenList has length method.');
test(function() {
assert_true('values' in elementClasses);
}, 'DOMTokenList has values method.');
test(function() {
assert_true('entries' in elementClasses);
}, 'DOMTokenList has entries method.');
test(function() {
assert_true('forEach' in elementClasses);
}, 'DOMTokenList has forEach method.');
test(function() {
assert_true(Symbol.iterator in elementClasses);
}, 'DOMTokenList has Symbol.iterator.');
test(function() {
var classList = [];
for (var className of elementClasses){
classList.push(className);
}
assert_array_equals(classList, ['foo', 'Foo']);
}, 'DOMTokenList is iterable via for-of loop.');
</script>