// Copyright 2016 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 var f1 = function() { while (1) { } } function g1() { var s = "hey"; f1 = function() { return true; } if (f1()) { return s; } } %OptimizeFunctionOnNextCall(g1); assertEquals("hey", g1()); var f2 = function() { do { } while (1); } function g2() { var s = "hey"; f2 = function() { return true; } if (f2()) { return s; } } %OptimizeFunctionOnNextCall(g2); assertEquals("hey", g2()); var f3 = function() { for (;;); } function g3() { var s = "hey"; f3 = function() { return true; } if (f3()) { return s; } } %OptimizeFunctionOnNextCall(g3); assertEquals("hey", g3()); var f4 = function() { for (;;); } function g4() { var s = "hey"; f4 = function() { return true; } while (f4()) { return s; } } %OptimizeFunctionOnNextCall(g4); assertEquals("hey", g4());