Index: test/webkit/finally-codegen-failure.js |
diff --git a/test/webkit/concat-while-having-a-bad-time.js b/test/webkit/finally-codegen-failure.js |
similarity index 75% |
copy from test/webkit/concat-while-having-a-bad-time.js |
copy to test/webkit/finally-codegen-failure.js |
index dfda1e08a0b36194b787a44ee12a9693acd8aeaf..037865608c6c76bc5f29f1ae82e60738eb42888a 100644 |
--- a/test/webkit/concat-while-having-a-bad-time.js |
+++ b/test/webkit/finally-codegen-failure.js |
@@ -21,11 +21,24 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-description( |
-"Tests the behavior of Array.prototype.concat while the array is having a bad time due to one of the elements we are concatenating." |
-); |
+description("Test that finally behaviour is correct."); |
-Object.defineProperty(Array.prototype, 0, { writable: false }); |
-shouldBe("[42].concat()", "[42]"); |
+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'; }})()"); |