let throwing = false; function bar() { with ({}) {} if (throwing) throw 3; } function foo() { let y = 3; try { let x = 3; () => { return x + y; } bar(); } finally { assertEq(y, 3); } } with ({}) {} for (var i = 0; i < 1000; i++) { foo() } throwing = true; try { foo(); } catch {}