OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // Flags: --allow-natives-syntax |
| 6 |
| 7 function f(a, b, mode) { |
| 8 if (mode) { |
| 9 return a === b; |
| 10 } else { |
| 11 return a === b; |
| 12 } |
| 13 } |
| 14 |
| 15 // Gather type feedback for both branches. |
| 16 f("a", "b", 1); |
| 17 f("c", "d", 1); |
| 18 f("a", "b", 0); |
| 19 f("c", "d", 0); |
| 20 |
| 21 function g(mode) { |
| 22 var x = 1e10 | 0; |
| 23 f(x, x, mode); |
| 24 } |
| 25 |
| 26 // Gather type feedback for g, but only on one branch for f. |
| 27 g(1); |
| 28 g(1); |
| 29 %OptimizeFunctionOnNextCall(g); |
| 30 // Optimize g, which inlines f. Both branches in f will see the constant. |
| 31 g(0); |
OLD | NEW |