summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/AsyncIterator/prototype/find/fn-throws-close-iterator.js
blob: 9544c57d4a918c13accb64b2cbb0c4e87fe5b7c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// |reftest| skip-if(!this.hasOwnProperty('AsyncIterator')) 

class TestIterator extends AsyncIterator {
  next() {
    return Promise.resolve({done: this.closed});
  }

  closed = false;
  return() {
    this.closed = true;
  }
}

const fn = () => { throw new Error(); };
const iter = new TestIterator();

assertEq(iter.closed, false);
iter.find(fn).then(() => {
  throw new Error('promise should be rejected');
}, err => {
  assertEq(err instanceof Error, true);
  assertEq(iter.closed, true);
});

if (typeof reportCompare === 'function')
  reportCompare(0, 0);