OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <meta charset=utf-8> |
| 3 <title>DOMTokenList iteration: keys, values, etc.</title> |
| 4 <script src=/resources/testharness.js></script> |
| 5 <script src=/resources/testharnessreport.js></script> |
| 6 <span class=" a a b "></span> |
| 7 <script> |
| 8 test(function() { |
| 9 var list = document.querySelector("span").classList; |
| 10 assert_array_equals([...list], ["a", "a", "b"]); |
| 11 |
| 12 var keys = list.keys(); |
| 13 assert_false(keys instanceof Array); |
| 14 keys = [...keys]; |
| 15 assert_array_equals(keys, [0, 1, 2]); |
| 16 |
| 17 var values = list.values(); |
| 18 assert_false(values instanceof Array); |
| 19 values = [...values]; |
| 20 assert_array_equals(values, ["a", "a", "b"]); |
| 21 |
| 22 var entries = list.entries(); |
| 23 assert_false(entries instanceof Array); |
| 24 entries = [...entries]; |
| 25 assert_equals(entries.length, keys.length); |
| 26 assert_equals(entries.length, values.length); |
| 27 for (var i = 0; i < entries.length; ++i) { |
| 28 assert_array_equals(entries[i], [keys[i], values[i]]); |
| 29 } |
| 30 |
| 31 var cur = 0; |
| 32 var thisObj = {}; |
| 33 list.forEach(function(value, key, listObj) { |
| 34 assert_equals(listObj, list); |
| 35 assert_equals(this, thisObj); |
| 36 assert_equals(value, values[cur]); |
| 37 assert_equals(key, keys[cur]); |
| 38 cur++; |
| 39 }, thisObj); |
| 40 assert_equals(cur, entries.length); |
| 41 |
| 42 assert_equals(list[Symbol.iterator], Array.prototype[Symbol.iterator]); |
| 43 assert_equals(list.keys, Array.prototype.keys); |
| 44 assert_equals(list.values, Array.prototype.values); |
| 45 assert_equals(list.entries, Array.prototype.entries); |
| 46 assert_equals(list.forEach, Array.prototype.forEach); |
| 47 }); |
| 48 </script> |
OLD | NEW |