text: // Copyright 2022 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 --maglev --no-always-turbofan
  
  var x = 1;
  var do_change = false;
  
  function g() {
    if (do_change) {
      x = 2;
      return 40;
    }
    return 30;
  }
  
  function f() {
    return g() + x;
  }
  
  %PrepareFunctionForOptimization(f);
  assertEquals(31, f());
  
  %OptimizeMaglevOnNextCall(f);
  assertEquals(31, f());
  assertTrue(isMaglevved(f));
  
  // Trigger a lazy deopt on the next g() call.
  do_change = true;
  assertEquals(42, f());
  assertFalse(isMaglevved(f));
  assertUnoptimized(f);
  