OLD | NEW |
(Empty) | |
| 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 |
| 7 function 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 |
| 21 assertEquals(30, foo()); |
| 22 assertEquals(30, foo()); |
| 23 |
| 24 function 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 |
| 40 assertEquals(1, bar(1)); |
| 41 assertEquals(1, bar(1)); |
| 42 |
| 43 assertEquals(5, bar(2)); |
| 44 assertEquals(5, bar(2)); |
| 45 |
| 46 assertEquals(25, bar(3)); |
| 47 assertEquals(25, bar(3)); |
OLD | NEW |