| Index: test/mjsunit/es6/tail-call-simple.js
|
| diff --git a/test/mjsunit/es6/tail-call-simple.js b/test/mjsunit/es6/tail-call-simple.js
|
| index 9443208c57ceb69c11ef82c6e840853619f725a3..ad6f7cd78ceb8924b539a572689a125ef8aa1bf7 100644
|
| --- a/test/mjsunit/es6/tail-call-simple.js
|
| +++ b/test/mjsunit/es6/tail-call-simple.js
|
| @@ -15,6 +15,8 @@
|
| return f(n - 1);
|
| }
|
| assertThrows(()=>{ f(1e6) });
|
| + %OptimizeFunctionOnNextCall(f);
|
| + assertThrows(()=>{ f(1e6) });
|
| })();
|
|
|
|
|
| @@ -30,6 +32,8 @@
|
| return f(n - 1);
|
| }
|
| assertEquals("foo", f(1e6));
|
| + %OptimizeFunctionOnNextCall(f);
|
| + assertEquals("foo", f(1e6));
|
| })();
|
|
|
|
|
| @@ -49,6 +53,9 @@
|
| }
|
| assertEquals("foo", f(1e6));
|
| assertEquals("bar", f(1e6 + 1));
|
| + %OptimizeFunctionOnNextCall(f);
|
| + assertEquals("foo", f(1e6));
|
| + assertEquals("bar", f(1e6 + 1));
|
| })();
|
|
|
|
|
| @@ -61,9 +68,14 @@
|
| if (n <= 0) {
|
| return "foo";
|
| }
|
| - return f(n - 1);
|
| + return f_bound(n - 1);
|
| + }
|
| + var f_bound = f0.bind({});
|
| + function f(n) {
|
| + return f_bound(n);
|
| }
|
| - var f = f0.bind({});
|
| + assertEquals("foo", f(1e6));
|
| + %OptimizeFunctionOnNextCall(f);
|
| assertEquals("foo", f(1e6));
|
| })();
|
|
|
| @@ -74,17 +86,22 @@
|
| if (n <= 0) {
|
| return "foo";
|
| }
|
| - return g(n - 1);
|
| + return g_bound(n - 1);
|
| }
|
| function g0(n){
|
| if (n <= 0) {
|
| return "bar";
|
| }
|
| - return f(n - 1);
|
| + return f_bound(n - 1);
|
| }
|
| - var f = f0.bind({});
|
| - var g = g0.bind({});
|
| -
|
| + var f_bound = f0.bind({});
|
| + var g_bound = g0.bind({});
|
| + function f(n) {
|
| + return f_bound(n);
|
| + }
|
| + assertEquals("foo", f(1e6));
|
| + assertEquals("bar", f(1e6 + 1));
|
| + %OptimizeFunctionOnNextCall(f);
|
| assertEquals("foo", f(1e6));
|
| assertEquals("bar", f(1e6 + 1));
|
| })();
|
|
|