Index: test/mjsunit/compiler/dead-string-add.js |
diff --git a/test/mjsunit/omit-constant-mapcheck.js b/test/mjsunit/compiler/dead-string-add.js |
similarity index 65% |
copy from test/mjsunit/omit-constant-mapcheck.js |
copy to test/mjsunit/compiler/dead-string-add.js |
index ae6308f215e40ae22b9e9328c5f4e4ec3d0f3843..04155efab685903dd1520873d08f9a78484491bb 100644 |
--- a/test/mjsunit/omit-constant-mapcheck.js |
+++ b/test/mjsunit/compiler/dead-string-add.js |
@@ -25,46 +25,41 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// Flags: --allow-natives-syntax |
- |
-var g1 = { a:1 } |
- |
-function load() { |
- return g1.a; |
+function dead1(a, b) { |
+ var x = "a" + "b"; |
+ return a; // x, "a", and "b" are dead code |
} |
-assertEquals(1, load()); |
-assertEquals(1, load()); |
-%OptimizeFunctionOnNextCall(load); |
-assertEquals(1, load()); |
-delete g1.a; |
-assertEquals(undefined, load()); |
- |
-var g2 = { a:2 } |
+function dead2(a, b) { |
+ var x = a + "0"; |
+ var y = b + "0"; |
+ return a; // x and y are both dead |
+} |
-function load2() { |
- return g2.a; |
+function dead3(a, b) { |
+ a = a ? "1" : "0"; |
+ b = b ? "1" : "0"; |
+ var x = a + "0"; |
+ var y = b + "0"; |
+ return a; // x and y are both dead |
} |
-assertEquals(2, load2()); |
-assertEquals(2, load2()); |
-%OptimizeFunctionOnNextCall(load2); |
-assertEquals(2, load2()); |
-g2.b = 10; |
-g2.a = 5; |
-assertEquals(5, load2()); |
+assertEquals(33, dead1(33, 32)); |
+assertEquals(33, dead2(33, 32)); |
+assertEquals("1", dead3(33, 32)); |
-var g3 = { a:2, b:9, c:1 } |
+assertEquals(31, dead1(31, 30)); |
+assertEquals(31, dead2(31, 30)); |
+assertEquals("1", dead3(31, 32)); |
-function store(v) { |
- g3.a = v; |
- return g3.a; |
-} |
+assertEquals(0, dead1(0, 30)); |
+assertEquals(0, dead2(0, 30)); |
+assertEquals("0", dead3(0, 32)); |
+ |
+assertEquals(true, dead1(true, 0)); |
+assertEquals(true, dead2(true, 0)); |
+assertEquals("1", dead3(true, 0)); |
-assertEquals(5, store(5)); |
-assertEquals(8, store(8)); |
-%OptimizeFunctionOnNextCall(store); |
-assertEquals(10, store(10)); |
-delete g3.c; |
-store(7); |
-assertEquals({a:7, b:9}, g3); |
+assertEquals("true", dead1("true", 0)); |
+assertEquals("true", dead2("true", 0)); |
+assertEquals("1", dead3("true", 0)); |