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();
} 
