diff options
-rw-r--r-- | components/script/dom/webidls/NodeList.webidl | 2 | ||||
-rw-r--r-- | tests/wpt/metadata/MANIFEST.json | 6 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/dom/nodes/NodeList-Iterable.html | 37 |
3 files changed, 44 insertions, 1 deletions
diff --git a/components/script/dom/webidls/NodeList.webidl b/components/script/dom/webidls/NodeList.webidl index e61eae6d6b1..780abc66746 100644 --- a/components/script/dom/webidls/NodeList.webidl +++ b/components/script/dom/webidls/NodeList.webidl @@ -12,5 +12,5 @@ interface NodeList { getter Node? item(unsigned long index); [Pure] readonly attribute unsigned long length; - // iterable<Node>; + iterable<Node?>; }; diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 214162045a5..60eb900a522 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -37215,6 +37215,12 @@ "deleted_reftests": {}, "items": { "testharness": { + "dom/nodes/NodeList-Iterable.html": [ + { + "path": "dom/nodes/NodeList-Iterable.html", + "url": "/dom/nodes/NodeList-Iterable.html" + } + ], "html/semantics/forms/the-option-element/option-form.html": [ { "path": "html/semantics/forms/the-option-element/option-form.html", diff --git a/tests/wpt/web-platform-tests/dom/nodes/NodeList-Iterable.html b/tests/wpt/web-platform-tests/dom/nodes/NodeList-Iterable.html new file mode 100644 index 00000000000..e1349cd767b --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/nodes/NodeList-Iterable.html @@ -0,0 +1,37 @@ +<!doctype html> +<meta charset="utf-8"> +<title>NodeList Iterable Test</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + <p id="1"></p> + <p id="2"></p> + <p id="3"></p> + <p id="4"></p> + <p id="5"></p> +<script> + var paragraphs; + setup(function() { + paragraphs = document.querySelectorAll('p'); + }) + test(function() { + assert_true('length' in paragraphs); + }, 'NodeList has length method.'); + test(function() { + assert_true('values' in paragraphs); + }, 'NodeList has values method.'); + test(function() { + assert_true('entries' in paragraphs); + }, 'NodeList has entries method.'); + test(function() { + assert_true('forEach' in paragraphs); + }, 'NodeList has forEach method.'); + test(function() { + assert_true(Symbol.iterator in paragraphs); + }, 'NodeList has Symbol.iterator.'); + test(function() { + var ids = "12345", idx=0; + for(var node of paragraphs){ + assert_equals(node.getAttribute('id'), ids[idx++]); + } + }, 'NodeList is iterable via for-of loop.'); +</script> |