Index: test/mjsunit/regress/regress-969.js |
diff --git a/test/mjsunit/regress/regress-969.js b/test/mjsunit/regress/regress-969.js |
deleted file mode 100644 |
index c2ba0ac9e8e25ccf5847a27827cb33768c19fc18..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/regress/regress-969.js |
+++ /dev/null |
@@ -1,127 +0,0 @@ |
-// Copyright 2010 the V8 project authors. All rights reserved. |
-// Redistribution and use in source and binary forms, with or without |
-// modification, are permitted provided that the following conditions are |
-// met: |
-// |
-// * Redistributions of source code must retain the above copyright |
-// notice, this list of conditions and the following disclaimer. |
-// * Redistributions in binary form must reproduce the above |
-// copyright notice, this list of conditions and the following |
-// disclaimer in the documentation and/or other materials provided |
-// with the distribution. |
-// * Neither the name of Google Inc. nor the names of its |
-// contributors may be used to endorse or promote products derived |
-// from this software without specific prior written permission. |
-// |
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- |
-// Regression test for bugs when deoptimizing after assignments in effect |
-// contexts. |
- |
-// Bug 989 is that there was an extra value on the expression stack when |
-// deoptimizing after an assignment in effect context (the value of the |
-// assignment was lingering). This is hard to observe in the unoptimized |
-// code. |
-// |
-// This test uses comma expressions to put assignments in effect contexts, |
-// references to deleted global variables to force deoptimization, and |
-// function calls to observe an extra value. |
- |
-function first(x, y) { return x; } |
-var y = 0; |
-var o = {}; |
-o.x = 0; |
-o[0] = 0; |
- |
-// Assignment to global variable. |
-x0 = 0; |
-function test0() { return first((y = 1, typeof x0), 2); } |
-// Call the function once to compile it. |
-assertEquals('number', test0()); |
-// Delete to force deoptimization on the next call. |
-delete x0; |
-assertEquals('undefined', test0()); |
- |
-// Compound assignment to global variable. |
-x1 = 0; |
-function test1() { return first((y += 1, typeof x1), 2); } |
-assertEquals('number', test1(), 'test1 before'); |
-delete x1; |
-assertEquals('undefined', test1(), 'test1 after'); |
- |
-// Pre and post-increment of global variable. |
-x2 = 0; |
-function test2() { return first((++y, typeof x2), 2); } |
-assertEquals('number', test2(), 'test2 before'); |
-delete x2; |
-assertEquals('undefined', test2(), 'test2 after'); |
- |
-x3 = 0; |
-function test3() { return first((y++, typeof x3), 2); } |
-assertEquals('number', test3(), 'test3 before'); |
-delete x3; |
-assertEquals('undefined', test3(), 'test3 after'); |
- |
- |
-// Assignment, compound assignment, and pre and post-increment of named |
-// properties. |
-x4 = 0; |
-function test4() { return first((o.x = 1, typeof x4), 2); } |
-assertEquals('number', test4()); |
-delete x4; |
-assertEquals('undefined', test4()); |
- |
-x5 = 0; |
-function test5() { return first((o.x += 1, typeof x5), 2); } |
-assertEquals('number', test5()); |
-delete x5; |
-assertEquals('undefined', test5()); |
- |
-x6 = 0; |
-function test6() { return first((++o.x, typeof x6), 2); } |
-assertEquals('number', test6()); |
-delete x6; |
-assertEquals('undefined', test6()); |
- |
-x7 = 0; |
-function test7() { return first((o.x++, typeof x7), 2); } |
-assertEquals('number', test7()); |
-delete x7; |
-assertEquals('undefined', test7()); |
- |
- |
-// Assignment, compound assignment, and pre and post-increment of indexed |
-// properties. |
-x8 = 0; |
-function test8(index) { return first((o[index] = 1, typeof x8), 2); } |
-assertEquals('number', test8()); |
-delete x8; |
-assertEquals('undefined', test8()); |
- |
-x9 = 0; |
-function test9(index) { return first((o[index] += 1, typeof x9), 2); } |
-assertEquals('number', test9()); |
-delete x9; |
-assertEquals('undefined', test9()); |
- |
-x10 = 0; |
-function test10(index) { return first((++o[index], typeof x10), 2); } |
-assertEquals('number', test10()); |
-delete x10; |
-assertEquals('undefined', test10()); |
- |
-x11 = 0; |
-function test11(index) { return first((o[index]++, typeof x11), 2); } |
-assertEquals('number', test11()); |
-delete x11; |
-assertEquals('undefined', test11()); |