diff options
Diffstat (limited to 'js/src/tests/non262/AsyncIterator/prototype/generator-methods-throw-on-iterator-helpers.js')
-rw-r--r-- | js/src/tests/non262/AsyncIterator/prototype/generator-methods-throw-on-iterator-helpers.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/js/src/tests/non262/AsyncIterator/prototype/generator-methods-throw-on-iterator-helpers.js b/js/src/tests/non262/AsyncIterator/prototype/generator-methods-throw-on-iterator-helpers.js new file mode 100644 index 0000000000..0e5b6ac0b5 --- /dev/null +++ b/js/src/tests/non262/AsyncIterator/prototype/generator-methods-throw-on-iterator-helpers.js @@ -0,0 +1,35 @@ +// |reftest| skip-if(!this.hasOwnProperty('AsyncIterator')) + +const asyncGeneratorProto = Object.getPrototypeOf( + Object.getPrototypeOf( + (async function *() {})() + ) +); + +const methods = [ + iter => iter.map(x => x), + iter => iter.filter(x => x), + iter => iter.take(1), + iter => iter.drop(0), + iter => iter.asIndexedPairs(), + iter => iter.flatMap(x => (async function*() {})()), +]; + +for (const method of methods) { + const iteratorHelper = method((async function*() {})()); + asyncGeneratorProto.next.call(iteratorHelper).then( + _ => assertEq(true, false, 'Expected reject'), + err => assertEq(err instanceof TypeError, true), + ); + asyncGeneratorProto.return.call(iteratorHelper).then( + _ => assertEq(true, false, 'Expected reject'), + err => assertEq(err instanceof TypeError, true), + ); + asyncGeneratorProto.throw.call(iteratorHelper).then( + _ => assertEq(true, false, 'Expected reject'), + err => assertEq(err instanceof TypeError, true), + ); +} + +if (typeof reportCompare == 'function') + reportCompare(0, 0); |