| <!doctype html> | |
| <meta charset="utf-8"> | |
| <title>Default iterator objects</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| test(() => { | |
| const iterator1 = new URLSearchParams()[Symbol.iterator](); | |
| const iterator2 = new URLSearchParams().keys(); | |
| const iterator3 = new URLSearchParams().values(); | |
| const iterator4 = new URLSearchParams().entries(); | |
| assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator2)); | |
| assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator3)); | |
| assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator4)); | |
| }, "Default iterator objects for an interface have the same prototype"); | |
| test(() => { | |
| const iterator = new URLSearchParams().entries(); | |
| assert_equals(Object.prototype.toString.call(iterator), "[object URLSearchParams Iterator]"); | |
| }, "Object.prototype.toString returns correct value"); | |
| test(() => { | |
| const iterator = new URLSearchParams().entries(); | |
| assert_equals(iterator[Symbol.toStringTag], "URLSearchParams Iterator"); | |
| assert_equals(Object.getOwnPropertyDescriptor(iterator, Symbol.toStringTag), undefined); | |
| }, "@@toStringTag has correct value from prototype"); | |
| </script> |