| Index: test/mjsunit/tail-call-intrinsic.js
|
| diff --git a/test/mjsunit/tail-call-intrinsic.js b/test/mjsunit/tail-call-intrinsic.js
|
| index a74f153732c78de152ba7722f68188e2e609d6d7..771684f1ff29cc79d267eedffd4455115a814937 100644
|
| --- a/test/mjsunit/tail-call-intrinsic.js
|
| +++ b/test/mjsunit/tail-call-intrinsic.js
|
| @@ -53,8 +53,8 @@ tailee3 = function(px) {
|
| %OptimizeFunctionOnNextCall(tailee3);
|
| assertEquals(p2, tailee3.call(p1, p2));
|
|
|
| -// Ensure too many parameters defeats the tail call optimization (currently
|
| -// unsupported).
|
| +// Ensure too many parameters defeats the tail call optimization if they use the
|
| +// arguments adapter (currently unsupported).
|
| var count4 = 1000000;
|
| tailee4 = function(px) {
|
| "use strict";
|
| @@ -106,3 +106,43 @@ tailee9 = function(px, py, pz, pa, pb, pc) {
|
| %OptimizeFunctionOnNextCall(tailee8);
|
| %OptimizeFunctionOnNextCall(tailee9);
|
| assertEquals(32, tailee9.call(null, 15, 16, 17, 18, 0, 110));
|
| +
|
| +// Tail calls adding a single parameter.
|
| +tailee10 = function(pb) {
|
| + return pb;
|
| +}
|
| +
|
| +tailee11 = function() {
|
| + "use strict";
|
| + return %_TailCall(tailee10, this, 5);
|
| +};
|
| +
|
| +%OptimizeFunctionOnNextCall(tailee10);
|
| +%OptimizeFunctionOnNextCall(tailee11);
|
| +assertEquals(5, tailee11.call(null));
|
| +
|
| +tailee12 = function(pa, pb, pc, pd) {
|
| + return pa + pb + pc + pd;
|
| +}
|
| +
|
| +tailee13 = function(pa, pb) {
|
| + "use strict";
|
| + return %_TailCall(tailee12, 7, this, pb, pa, 13);
|
| +};
|
| +
|
| +%OptimizeFunctionOnNextCall(tailee12);
|
| +%OptimizeFunctionOnNextCall(tailee13);
|
| +assertEquals(41, tailee13.call(12, 15, 1));
|
| +
|
| +tailee14 = function(pa, pb, pc, pd, pe, pf) {
|
| + return pa + pb + pc + pd + pe + pf;
|
| +}
|
| +
|
| +tailee15 = function(pa, pb) {
|
| + "use strict";
|
| + return %_TailCall(tailee14, 7, this, pb, pa, 13, pb, pa);
|
| +};
|
| +
|
| +%OptimizeFunctionOnNextCall(tailee14);
|
| +%OptimizeFunctionOnNextCall(tailee15);
|
| +assertEquals(57, tailee15.call(12, 15, 1));
|
|
|