| 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));
|
|
|