1// Copyright 2016 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 7var f1 = function() { while (1) { } } 8 9function g1() { 10 var s = "hey"; 11 f1 = function() { return true; } 12 if (f1()) { return s; } 13} 14 15%OptimizeFunctionOnNextCall(g1); 16assertEquals("hey", g1()); 17 18var f2 = function() { do { } while (1); } 19 20function g2() { 21 var s = "hey"; 22 f2 = function() { return true; } 23 if (f2()) { return s; } 24} 25 26%OptimizeFunctionOnNextCall(g2); 27assertEquals("hey", g2()); 28 29var f3 = function() { for (;;); } 30 31function g3() { 32 var s = "hey"; 33 f3 = function() { return true; } 34 if (f3()) { return s; } 35} 36 37%OptimizeFunctionOnNextCall(g3); 38assertEquals("hey", g3()); 39 40var f4 = function() { for (;;); } 41 42function g4() { 43 var s = "hey"; 44 f4 = function() { return true; } 45 while (f4()) { return s; } 46} 47 48%OptimizeFunctionOnNextCall(g4); 49assertEquals("hey", g4()); 50