// 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);
}

g(true); g(true); g(true); g(true);

%OptimizeFunctionOnNextCall(g);
g(false);