default-iterator-object.html (1265B)
1 <!doctype html> 2 <meta charset="utf-8"> 3 <title>Default iterator objects</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script> 7 test(() => { 8 const iterator1 = new URLSearchParams()[Symbol.iterator](); 9 const iterator2 = new URLSearchParams().keys(); 10 const iterator3 = new URLSearchParams().values(); 11 const iterator4 = new URLSearchParams().entries(); 12 assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator2)); 13 assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator3)); 14 assert_equals(Object.getPrototypeOf(iterator1), Object.getPrototypeOf(iterator4)); 15 }, "Default iterator objects for an interface have the same prototype"); 16 17 test(() => { 18 const iterator = new URLSearchParams().entries(); 19 assert_equals(Object.prototype.toString.call(iterator), "[object URLSearchParams Iterator]"); 20 }, "Object.prototype.toString returns correct value"); 21 22 test(() => { 23 const iterator = new URLSearchParams().entries(); 24 assert_equals(iterator[Symbol.toStringTag], "URLSearchParams Iterator"); 25 assert_equals(Object.getOwnPropertyDescriptor(iterator, Symbol.toStringTag), undefined); 26 }, "@@toStringTag has correct value from prototype"); 27 </script>