| Index: test/mjsunit/regress/regress-247688.js
|
| diff --git a/test/mjsunit/regress/regress-2499.js b/test/mjsunit/regress/regress-247688.js
|
| similarity index 73%
|
| copy from test/mjsunit/regress/regress-2499.js
|
| copy to test/mjsunit/regress/regress-247688.js
|
| index 52aad874db6fcdc89f5ee1ae4db45304e64b0e77..80e2884c705ef230e96a93ede8e5815175b01363 100644
|
| --- a/test/mjsunit/regress/regress-2499.js
|
| +++ b/test/mjsunit/regress/regress-247688.js
|
| @@ -27,14 +27,54 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -function foo(word, nBits) {
|
| - return (word[1] >>> nBits) | (word[0] << (32 - nBits));
|
| -}
|
| +var a = {};
|
| +a.x = 1
|
| +a.y = 1.5
|
| +
|
| +var b = {}
|
| +b.x = 1.5;
|
| +b.y = 1;
|
| +
|
| +var c = {}
|
| +c.x = 1.5;
|
| +
|
| +var d = {}
|
| +d.x = 1.5;
|
| +
|
| +var e = {}
|
| +e.x = 1.5;
|
| +
|
| +var f = {}
|
| +f.x = 1.5;
|
|
|
| -word = [0x1001, 0];
|
| +var g = {}
|
| +g.x = 1.5;
|
| +
|
| +var h = {}
|
| +h.x = 1.5;
|
| +
|
| +var i = {}
|
| +i.x = 1.5;
|
| +
|
| +var o = {}
|
| +var p = {y : 10, z : 1}
|
| +o.__proto__ = p;
|
| +delete p.z
|
| +
|
| +function foo(v, w) {
|
| + // Make load via IC in optimized code. Its target will get overwritten by
|
| + // lazy deopt patch for the stack check.
|
| + v.y;
|
| + // Make store with transition to make this code dependent on the map.
|
| + w.y = 1;
|
| + return b.y;
|
| +}
|
|
|
| -var expected = foo(word, 1);
|
| -foo(word, 1);
|
| +foo(o, c);
|
| +foo(o, d);
|
| +foo(o, e);
|
| %OptimizeFunctionOnNextCall(foo);
|
| -var optimized = foo(word, 1);
|
| -assertEquals(expected, optimized)
|
| +foo(b, f);
|
| +foo(b, g);
|
| +foo(b, h);
|
| +foo(a, i);
|
|
|