blob: 1384e9a715b236354f6eb03226ab6cfdb5cd039c [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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
Ben Murdochc5610432016-08-08 18:44:38 +01005// Flags: --allow-natives-syntax --use-osr
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
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));