node/deps/v8/test/mjsunit/harmony/iterator-constructor.js
Michaël Zasso f226350fcb deps: update V8 to 11.3.244.4
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
2023-03-31 14:15:23 +00:00

32 lines
849 B
JavaScript

// Copyright 2023 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Flags: --harmony-iterator-helpers
assertEquals('function', typeof Iterator);
assertEquals(0, Iterator.length);
assertEquals('Iterator', Iterator.name);
// Abstract base class, can't be instantiated.
assertThrows(() => new Iterator(), TypeError);
// Can be used as superclass though.
class MyIterator extends Iterator {
next() {
return {value: 42, done: false};
}
}
const myIter = new MyIterator();
assertTrue(myIter instanceof MyIterator);
function* gen() {
yield 42;
}
const genIter = gen();
assertTrue(genIter instanceof Iterator);
assertSame(
Object.getPrototypeOf(
Object.getPrototypeOf(Object.getPrototypeOf(genIter))),
Iterator.prototype);