Index: test/mjsunit/compiler/inline-arguments.js |
diff --git a/test/mjsunit/compiler/inline-arguments.js b/test/mjsunit/compiler/inline-arguments.js |
index b79f59c4a16e0bc4c28c2ecf8bcff53a1e478d26..9712b2d18352c042247e93abe15645e24030b5c7 100644 |
--- a/test/mjsunit/compiler/inline-arguments.js |
+++ b/test/mjsunit/compiler/inline-arguments.js |
@@ -54,3 +54,29 @@ A.prototype.X.apply = function (receiver, args) { |
return Function.prototype.apply.call(this, receiver, args); |
}; |
a.Z(4,5,6); |
+ |
+ |
+// Ensure that HArgumentsObject is inserted in a correct place |
+// and dominates all uses. |
+function F1() { } |
+function F2() { F1.apply(this, arguments); } |
+function F3(x, y) { |
+ if (x) { |
+ F2(y); |
+ } |
+} |
+ |
+function F31() { |
+ return F1.apply(this, arguments); |
+} |
+ |
+function F4() { |
+ F3(true, false); |
+ return F31(1); |
+} |
+ |
+F4(1); |
+F4(1); |
+F4(1); |
+%OptimizeFunctionOnNextCall(F4); |
+F4(1); |