| Index: test/mjsunit/regress/regress-247688.js
|
| diff --git a/test/mjsunit/regress/regress-234101.js b/test/mjsunit/regress/regress-247688.js
|
| similarity index 73%
|
| copy from test/mjsunit/regress/regress-234101.js
|
| copy to test/mjsunit/regress/regress-247688.js
|
| index 74228dfabe532efdce2d2cd31736959eaff4349b..80e2884c705ef230e96a93ede8e5815175b01363 100644
|
| --- a/test/mjsunit/regress/regress-234101.js
|
| +++ b/test/mjsunit/regress/regress-247688.js
|
| @@ -27,16 +27,54 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -// Currently, the gap resolver doesn't handle moves from a ConstantOperand to a
|
| -// DoubleRegister, but these kind of moves appeared when HConstant::EmitAtUses
|
| -// was changed to allow special double values (-0, NaN, hole). So we should
|
| -// either enhance the gap resolver or make sure that such moves don't happen.
|
| +var a = {};
|
| +a.x = 1
|
| +a.y = 1.5
|
|
|
| -function foo(x) {
|
| - return (x ? NaN : 0.2) + 0.1;
|
| +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;
|
| +
|
| +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;
|
| }
|
|
|
| -foo(false);
|
| -foo(false);
|
| +foo(o, c);
|
| +foo(o, d);
|
| +foo(o, e);
|
| %OptimizeFunctionOnNextCall(foo);
|
| -foo(false);
|
| +foo(b, f);
|
| +foo(b, g);
|
| +foo(b, h);
|
| +foo(a, i);
|
|
|