| description("Test that finally behaviour is correct."); | |
| a = { | |
| f: function() { return true; } | |
| }; | |
| a.f.toString = function() { return "Fail"; }; | |
| function f() { | |
| try { | |
| a.f(); | |
| a.f(); | |
| return a.f(); | |
| } finally { | |
| a.f(); | |
| } | |
| } | |
| shouldBeTrue("f()") | |
| shouldBeTrue("(function () { var a = true; try { return a; } finally { a = false; }})()"); | |
| shouldThrow("(function () { var a = 'PASS'; try { throw a; } finally { a = 'FAIL'; }})()"); |