| Index: test/mjsunit/regress/regress-359491.js
|
| diff --git a/test/mjsunit/regress/regress-359491.js b/test/mjsunit/regress/regress-359491.js
|
| index 194376b316a175f6443b5e8153c52072c6810043..d72875a2968a1ee03a8be372d7de779b71429d66 100644
|
| --- a/test/mjsunit/regress/regress-359491.js
|
| +++ b/test/mjsunit/regress/regress-359491.js
|
| @@ -4,28 +4,58 @@
|
|
|
| // Flags: --allow-natives-syntax
|
|
|
| -function f(a, b, mode) {
|
| - if (mode) {
|
| - return a === b;
|
| - } else {
|
| - return a === b;
|
| +(function () {
|
| + function f(a, b, mode) {
|
| + if (mode) {
|
| + return a === b;
|
| + } else {
|
| + return a === b;
|
| + }
|
| }
|
| -}
|
| -
|
| -// Gather type feedback for both branches.
|
| -f("a", "b", 1);
|
| -f("c", "d", 1);
|
| -f("a", "b", 0);
|
| -f("c", "d", 0);
|
| -
|
| -function g(mode) {
|
| - var x = 1e10 | 0;
|
| - f(x, x, mode);
|
| -}
|
| -
|
| -// Gather type feedback for g, but only on one branch for f.
|
| -g(1);
|
| -g(1);
|
| -%OptimizeFunctionOnNextCall(g);
|
| -// Optimize g, which inlines f. Both branches in f will see the constant.
|
| -g(0);
|
| +
|
| + // Gather type feedback for both branches.
|
| + f("a", "b", 1);
|
| + f("c", "d", 1);
|
| + f("a", "b", 0);
|
| + f("c", "d", 0);
|
| +
|
| + function g(mode) {
|
| + var x = 1e10 | 0;
|
| + f(x, x, mode);
|
| + }
|
| +
|
| + // Gather type feedback for g, but only on one branch for f.
|
| + g(1);
|
| + g(1);
|
| + %OptimizeFunctionOnNextCall(g);
|
| + // Optimize g, which inlines f. Both branches in f will see the constant.
|
| + g(0);
|
| +})();
|
| +
|
| +(function () {
|
| + function f(a, b, mode) {
|
| + if (mode) {
|
| + return a === b;
|
| + } else {
|
| + return a === b;
|
| + }
|
| + }
|
| +
|
| + // Gather type feedback for both branches.
|
| + f({ a : 1}, {b : 1}, 1);
|
| + f({ c : 1}, {d : 1}, 1);
|
| + f({ a : 1}, {c : 1}, 0);
|
| + f({ b : 1}, {d : 1}, 0);
|
| +
|
| + function g(mode) {
|
| + var x = 1e10 | 0;
|
| + f(x, x, mode);
|
| + }
|
| +
|
| + // Gather type feedback for g, but only on one branch for f.
|
| + g(1);
|
| + g(1);
|
| + %OptimizeFunctionOnNextCall(g);
|
| + // Optimize g, which inlines f. Both branches in f will see the constant.
|
| + g(0);
|
| +})();
|
|
|