michael@0: var count = 0; michael@0: function f() { michael@0: try { michael@0: try { michael@0: try { michael@0: count += 2; michael@0: } finally { michael@0: count += 3; michael@0: throw 3; michael@0: } michael@0: } catch(e) { michael@0: count += 4; michael@0: throw 4; michael@0: } michael@0: } finally { michael@0: count += 5; michael@0: try { michael@0: count += 6; michael@0: } catch(e) { michael@0: count += 7; michael@0: throw 123; michael@0: } finally { michael@0: count += 8; michael@0: } michael@0: count += 9; michael@0: } michael@0: count += 10; michael@0: } michael@0: for (var i=0; i<3; i++) { michael@0: try { michael@0: f(); michael@0: assertEq(0, 1); michael@0: } catch(e) { michael@0: assertEq(e, 4); michael@0: } michael@0: } michael@0: assertEq(count, 111);