| // Copyright 2018 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Flags: --allow-natives-syntax |
| |
| 'use strict'; |
| |
| function f(abort, n, a, b) { |
| if (abort) return; |
| var x = a ? true : "" + a; |
| if (!a) { |
| var dead = n + 1 + 1; |
| if(!b) { |
| x = dead; |
| } |
| if (x) { |
| x = false; |
| } |
| if (b) { |
| x = false; |
| } |
| } |
| return x + 1; |
| } |
| f(false, 5); f(false, 6); f(false, 7); f(false, 8); |
| |
| function g(abort, a, b) { |
| return f(abort, "abc", a, b); |
| } |
| |
| %PrepareFunctionForOptimization(g); |
| g(true); g(true); g(true); g(true); |
| |
| %OptimizeFunctionOnNextCall(g); |
| g(false); |