| Index: test/mjsunit/compiler/dead-string-char-from-code.js
 | 
| diff --git a/test/mjsunit/compiler/dead-code6.js b/test/mjsunit/compiler/dead-string-char-from-code.js
 | 
| similarity index 62%
 | 
| copy from test/mjsunit/compiler/dead-code6.js
 | 
| copy to test/mjsunit/compiler/dead-string-char-from-code.js
 | 
| index ec9b8433ddd72187b3f9dab70baf2399fac0cdb2..f9db59d92bbd108ec38e7a1e12cd6342142de208 100644
 | 
| --- a/test/mjsunit/compiler/dead-code6.js
 | 
| +++ b/test/mjsunit/compiler/dead-string-char-from-code.js
 | 
| @@ -1,4 +1,4 @@
 | 
| -// Copyright 2008 the V8 project authors. All rights reserved.
 | 
| +// Copyright 2013 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:
 | 
| @@ -26,48 +26,51 @@
 | 
|  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
|  
 | 
|  // Flags: --allow-natives-syntax
 | 
| -// Test some dead code elimination scenarios
 | 
|  
 | 
| -function dead1(x, y) {
 | 
| -    var a = x | 0, b = y | 0;
 | 
| -    a * b;
 | 
| -    a << b;
 | 
| -    a >> b;
 | 
| -    a >>> b;
 | 
| -    a | b;
 | 
| -    a & b;
 | 
| -    a ^ b;
 | 
| -    return x;
 | 
| +function dead1(a, b) {
 | 
| +    var x = %_StringCharFromCode(a);
 | 
| +    return a; // x is dead code
 | 
|  }
 | 
|  
 | 
| -function dead2(x, y) {
 | 
| -    var a = x | 0, b = y | 0;
 | 
| -    (a | 0) * b;
 | 
| -    (a | 0) << b;
 | 
| -    (a | 0) >> b;
 | 
| -    (a | 0) >>> b;
 | 
| -    (a | 0) | b;
 | 
| -    (a | 0) & b;
 | 
| -    (a | 0) ^ b;
 | 
| -    return x;
 | 
| +function dead2(a, b) {
 | 
| +    var x = %_StringCharFromCode(a);
 | 
| +    var y = %_StringCharFromCode(b);
 | 
| +    return a; // x and y are both dead
 | 
|  }
 | 
|  
 | 
|  function dead3(a, b) {
 | 
| -    a == 2 ? (a * b) : (b * a); // dead
 | 
| -    return a;
 | 
| +    a = a ? 11 : 12;
 | 
| +    b = b ? 13 : 14;
 | 
| +    var x = %_StringCharFromCode(a);
 | 
| +    var y = %_StringCharFromCode(b);
 | 
| +    return a; // x and y are both dead
 | 
|  }
 | 
|  
 | 
| -assertTrue(dead1(33, 32) == 33);
 | 
| -assertTrue(dead1(33, 32) == 33);
 | 
| -%OptimizeFunctionOnNextCall(dead1);
 | 
| -assertTrue(dead1(33, 32) == 33);
 | 
| +function test() {
 | 
| +  assertTrue(dead1(33, 32) == 33);
 | 
| +  assertTrue(dead2(33, 32) == 33);
 | 
| +  assertTrue(dead3(33, 32) == 11);
 | 
|  
 | 
| -assertTrue(dead2(34, 11) == 34);
 | 
| -assertTrue(dead2(34, 11) == 34);
 | 
| -%OptimizeFunctionOnNextCall(dead2);
 | 
| -assertTrue(dead2(34, 11) == 34);
 | 
| +  assertTrue(dead1(31, 30) == 31);
 | 
| +  assertTrue(dead2(31, 30) == 31);
 | 
| +  assertTrue(dead3(31, 32) == 11);
 | 
| +
 | 
| +  assertTrue(dead1(0, 30) == 0);
 | 
| +  assertTrue(dead2(0, 30) == 0);
 | 
| +  assertTrue(dead3(0, 32) == 12);
 | 
| +
 | 
| +  assertTrue(dead1(true, 0) == true);
 | 
| +  assertTrue(dead2(true, 0) == true);
 | 
| +  assertTrue(dead3(true, 0) == 11);
 | 
|  
 | 
| -assertTrue(dead3(35, 12) == 35);
 | 
| -assertTrue(dead3(35, 12) == 35);
 | 
| +  assertTrue(dead1("true", 0) == "true");
 | 
| +  assertTrue(dead2("true", 0) == "true");
 | 
| +  assertTrue(dead3("true", 0) == 11);
 | 
| +}
 | 
| +
 | 
| +test();
 | 
| +test();
 | 
| +%OptimizeFunctionOnNextCall(dead1);
 | 
| +%OptimizeFunctionOnNextCall(dead2);
 | 
|  %OptimizeFunctionOnNextCall(dead3);
 | 
| -assertTrue(dead3(35, 12) == 35);
 | 
| +test();
 | 
| 
 |