Assertion used to determine if something is an async generator is wrong
[WebKit-https.git] / JSTests / stress / async-generator-assertion.js
1 function assert(b) {
2     if (!b)
3         throw new Error("Bad");
4 }
5
6 async function* asyncIterator() {
7     yield 42;
8 }
9
10 function test1() {
11     let p = asyncIterator();
12     p.next().then((x) => {
13         assert(x.value === 42);
14         assert(x.done === false);
15     });
16     p.__proto__ = {};
17     assert(p.next === undefined);
18 }
19 test1();
20
21 let error = null;
22 async function test2() {
23     let p2 = asyncIterator();
24     p2.__proto__ = {};
25     try {
26         for await (let x of p2) {
27             throw new Error("Bad!");
28         }
29     } 
30     catch(e) {
31         error = e;
32     }
33 }
34 test2();
35 assert(error instanceof TypeError);
36 assert(error.message === "undefined is not a function (near '...x of p2...')");