blob: 10f8e447a1d4d879b879dc8a14365f5ae231678d (
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
27
28
29
30
|
var depth = 0;
test();
function test() {
// |test()| is called recursively. When the generator runs in the JIT, the
// recursion limit is ~20x higher than in the interpreter. Limit the depth
// here so that the test doesn't timeout or becomes extremely slow.
if (++depth > 400)
return;
var catch1, catch2, catch3, finally1, finally2, finally3;
function* gen() {
yield 1;
try {
try {
try {
yield 1;
} finally {
test();
}
} catch (e) {
finally2 = true;
}
} catch (e) { }
}
iter = gen();
iter.next();
iter.next();
iter.return();
gc();
}
|