var c = 0; function g(o) { try { for(;;) o.next(); } catch(e) { c += e; } return o.x; } function f() { var o = {x: 0, next: function() { if (this.x++ > 100) throw 3; }}; g(o); assertEq(o.x, 102); o.x = 0; g(o); assertEq(o.x, 102); } f(); assertEq(c, 6);