blob: fa703eaeac70651a175bb6baa662c4ce5b5e766c [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// Copyright 2014 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: --use-osr
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
7function f1(a,b,c) {
8 var x = 0;
9 var y = 0;
10 var z = 0;
11 for (var i = 0; i < 2; i++) {
12 for (var j = 0; j < 2; j++) {
13 while (a > 0) { x += 19; a--; }
14 while (b > 0) { y += 23; b--; }
15 while (c > 0) { z += 29; c--; }
16 }
17 }
18 return x + y + z;
19}
20
21function f2(a,b,c) {
22 var x = 0;
23 var y = 0;
24 var z = 0;
25 for (var i = 0; i < 2; i++) {
26 for (var j = 0; j < 2; j++) {
27 while (a > 0) { x += 19; a--; }
28 while (b > 0) { y += 23; b--; }
29 while (c > 0) { z += 29; c--; }
30 }
31 }
32 return x + y + z;
33}
34
35
36function f3(a,b,c) {
37 var x = 0;
38 var y = 0;
39 var z = 0;
40 for (var i = 0; i < 2; i++) {
41 for (var j = 0; j < 2; j++) {
42 while (a > 0) { x += 19; a--; }
43 while (b > 0) { y += 23; b--; }
44 while (c > 0) { z += 29; c--; }
45 }
46 }
47 return x + y + z;
48}
49
50function check(f,a,b,c) {
51 assertEquals(a * 19 + b * 23 + c * 29, f(a,b,c));
52}
53
54check(f1, 50000, 5, 6);
55check(f2, 4, 50000, 6);
56check(f3, 11, 12, 50000);