BackwardsGraph needs to consider back edges as the backward's root successor
[WebKit-https.git] / JSTests / es6 / generators_yield_star_iterator_closing.js
1 if (typeof global === 'undefined') {
2 var global = this;
3 }
4 function __createIterableObject(arr, methods) {
5 methods = methods || {};
6 if (typeof Symbol !== 'function' || !Symbol.iterator) {
7   return {};
8 }
9 arr.length++;
10 var iterator = {
11   next: function() {
12     return { value: arr.shift(), done: arr.length <= 0 };
13   },
14   'return': methods['return'],
15   'throw': methods['throw']
16 };
17 var iterable = {};
18 iterable[Symbol.iterator] = function(){ return iterator; }
19 return iterable;
20 }
21
22 function test() {
23
24 var closed = '';
25 var iter = __createIterableObject([1, 2, 3], {
26   'return': function(){
27     closed += 'a';
28     return {done: true};
29   }
30 });
31 var gen = (function* generator(){
32   try {
33     yield *iter;
34   } finally {
35     closed += 'b';
36   }
37 })();
38 gen.next();
39 gen['return']();
40 return closed === 'ab';
41       
42 }
43
44 if (!test())
45     throw new Error("Test failed");
46