| Index: test/mjsunit/regress/regress-2612.js
|
| diff --git a/test/mjsunit/regress/regress-2451.js b/test/mjsunit/regress/regress-2612.js
|
| similarity index 63%
|
| copy from test/mjsunit/regress/regress-2451.js
|
| copy to test/mjsunit/regress/regress-2612.js
|
| index 465e4e68c26f3e3e119cbaf82d50c8f83c6efa9a..06db07733d393f5327be977c56d2b764fbe1f0b1 100644
|
| --- a/test/mjsunit/regress/regress-2451.js
|
| +++ b/test/mjsunit/regress/regress-2612.js
|
| @@ -25,17 +25,52 @@
|
| // (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
|
| +// Flags: --allow-natives-syntax --nodead-code-elimination
|
| +// Flags: --nofold-constants --nouse-gvn
|
|
|
| -function f() {
|
| - assertEquals(-1.0, Math.round(-1.5));
|
| - assertEquals(-2.0, Math.round(-2.5));
|
| - assertEquals(-1.0, Math.round(-0.5000000000000001));
|
| +// Create a function to get a long series of removable simulates.
|
| +// f() {
|
| +// var _0 = <random>, _1 = <random>, ... _1000 = <random>,
|
| +// _1001 = <random var> + <random var>,
|
| +// _1002 = <random var> + <random var>,
|
| +// ...
|
| +// _99999 = <random var> + <random var>,
|
| +// x = 1;
|
| +// return _0;
|
| +// }
|
| +
|
| +var seed = 1;
|
| +
|
| +function rand() {
|
| + seed = seed * 171 % 1337 + 17;
|
| + return (seed % 1000) / 1000;
|
| }
|
|
|
| -f();
|
| +function randi(max) {
|
| + seed = seed * 131 % 1773 + 13;
|
| + return seed % max;
|
| +}
|
| +
|
| +function varname(i) {
|
| + return "_" + i;
|
| +}
|
| +
|
| +var source = "var ";
|
| +
|
| +for (var i = 0; i < 1000; i++) {
|
| + source += [varname(i), "=", rand(), ","].join("");
|
| +}
|
| +
|
| +for (var i = 1000; i < 100000; i++) {
|
| + source += [varname(i), "=",
|
| + varname(randi(i)), "+",
|
| + varname(randi(i)), ","].join("");
|
| +}
|
| +
|
| +source += "x=1; return _0;"
|
| +var f = new Function(source);
|
| +
|
| f();
|
| %OptimizeFunctionOnNextCall(f);
|
| f();
|
| -assertTrue(%GetOptimizationStatus(f) != 2);
|
|
|
|
|