OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script> |
| 5 test(() => { |
| 6 // Headers.idl has an iterable<k, v> declaration. |
| 7 let iterator = new Headers().entries(); |
| 8 let iteratorProto = Object.getPrototypeOf(iterator); |
| 9 let iteratorProtoProto = Object.getPrototypeOf(iteratorProto); |
| 10 |
| 11 assert_array_equals(Object.getOwnPropertyNames(iterator), [], |
| 12 "The default iterator object has no properties of its own
."); |
| 13 assert_array_equals(Object.getOwnPropertySymbols(iterator), [], |
| 14 "The default iterator object has no symbols of its own.")
; |
| 15 |
| 16 assert_in_array("next", Object.getOwnPropertyNames(iteratorProto), |
| 17 "The iterator prototype object has a property called 'next'."
); |
| 18 let nextProperty = Object.getOwnPropertyDescriptor(iteratorProto, "next"); |
| 19 assert_true(nextProperty.configurable, "The 'next' property must be configura
ble."); |
| 20 assert_true(nextProperty.enumerable, "The 'next' property must be enumerable.
"); |
| 21 assert_true(nextProperty.writable, "The 'next' property must be writable."); |
| 22 |
| 23 assert_equals(iteratorProtoProto, |
| 24 Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]
())), |
| 25 "The iterator prototype object's [[Prototype]] is %IteratorProt
otype."); |
| 26 assert_array_equals(Object.getOwnPropertyNames(iteratorProtoProto), [], |
| 27 "%IteratorPrototype% has no properties of its own"); |
| 28 assert_array_equals(Object.getOwnPropertySymbols(iteratorProtoProto), |
| 29 [Symbol.iterator], |
| 30 "%IteratorPrototype% has defines @@iterator."); |
| 31 assert_equals(Object.getPrototypeOf(iteratorProtoProto), Object.prototype, |
| 32 "%IteratorPrototype% descends from %ObjectPrototype%."); |
| 33 }, "Iterators from pair-iterable interfaces inherit from %IteratorPrototype%"); |
| 34 </script> |
OLD | NEW |