1// Copyright 2015 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 --use-osr --turbo-osr 6 7function foo() { 8 var sum = 0; 9 A: for (var i = 0; i < 5; i++) { 10 B: for (var j = 0; j < 5; j++) { 11 C: for (var k = 0; k < 10; k++) { 12 if (k === 5) %OptimizeOsr(); 13 if (k === 6) break B; 14 sum++; 15 } 16 } 17 } 18 return sum; 19} 20 21assertEquals(30, foo()); 22assertEquals(30, foo()); 23 24function bar(a) { 25 var sum = 0; 26 A: for (var i = 0; i < 5; i++) { 27 B: for (var j = 0; j < 5; j++) { 28 C: for (var k = 0; k < 10; k++) { 29 sum++; 30 %OptimizeOsr(); 31 if (a === 1) break A; 32 if (a === 2) break B; 33 if (a === 3) break C; 34 } 35 } 36 } 37 return sum; 38} 39 40assertEquals(1, bar(1)); 41assertEquals(1, bar(1)); 42 43assertEquals(5, bar(2)); 44assertEquals(5, bar(2)); 45 46assertEquals(25, bar(3)); 47assertEquals(25, bar(3)); 48