| Index: test/mjsunit/regress/regress-2596.js
|
| diff --git a/test/mjsunit/compiler/regress-const.js b/test/mjsunit/regress/regress-2596.js
|
| similarity index 73%
|
| copy from test/mjsunit/compiler/regress-const.js
|
| copy to test/mjsunit/regress/regress-2596.js
|
| index aa55d0fd3ae17051a084a6bf28c2257f2abc8495..201b88ac99b31330b19951c58357ef6fa5432214 100644
|
| --- a/test/mjsunit/compiler/regress-const.js
|
| +++ b/test/mjsunit/regress/regress-2596.js
|
| @@ -27,42 +27,30 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -// Test const initialization and assignments.
|
| -function f() {
|
| - var x = 42;
|
| - while (true) {
|
| - const y = x;
|
| - if (--x == 0) return y;
|
| - }
|
| +var bytes = new Uint8Array([
|
| + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f]); // kHoleNaN
|
| +var doubles = new Float64Array(bytes.buffer);
|
| +assertTrue(isNaN(doubles[0]));
|
| +
|
| +var prototype = [2.5, 2.5];
|
| +var array = [3.5, 3.5];
|
| +array.__proto__ = prototype;
|
| +assertTrue(%HasFastDoubleElements(array));
|
| +
|
| +function boom(index) {
|
| + array[index] = doubles[0];
|
| + return array[index];
|
| }
|
|
|
| -function g() {
|
| - const x = 42;
|
| - x += 1;
|
| - return x;
|
| -}
|
| -
|
| -for (var i = 0; i < 5; i++) {
|
| - f();
|
| - g();
|
| -}
|
| -
|
| -%OptimizeFunctionOnNextCall(f);
|
| -%OptimizeFunctionOnNextCall(g);
|
| +assertTrue(isNaN(boom(0)));
|
| +assertTrue(isNaN(boom(0)));
|
| +assertTrue(isNaN(boom(0)));
|
|
|
| -assertEquals(42, f());
|
| -assertEquals(42, g());
|
| -
|
| -
|
| -function h(a, b) {
|
| - var r = a + b;
|
| - const X = 42;
|
| - return r + X;
|
| -}
|
| +// Test hydrogen
|
| +%OptimizeFunctionOnNextCall(boom);
|
| +assertTrue(isNaN(boom(0)));
|
| +assertTrue(isNaN(boom(0)));
|
| +assertTrue(isNaN(boom(0)));
|
|
|
| -for (var i = 0; i < 5; i++) h(1,2);
|
|
|
| -%OptimizeFunctionOnNextCall(h);
|
|
|
| -assertEquals(45, h(1,2));
|
| -assertEquals("foo742", h("foo", 7));
|
|
|