20 lines
472 B
JavaScript
20 lines
472 B
JavaScript
function test() {
|
|
|
|
// Iterator instance
|
|
var iterator = ''[Symbol.iterator]();
|
|
// %StringIteratorPrototype%
|
|
var proto1 = Object.getPrototypeOf(iterator);
|
|
// %IteratorPrototype%
|
|
var proto2 = Object.getPrototypeOf(proto1);
|
|
|
|
return proto2.hasOwnProperty(Symbol.iterator) &&
|
|
!proto1 .hasOwnProperty(Symbol.iterator) &&
|
|
!iterator .hasOwnProperty(Symbol.iterator) &&
|
|
iterator[Symbol.iterator]() === iterator;
|
|
|
|
}
|
|
|
|
if (!test())
|
|
throw new Error("Test failed");
|
|
|