CSS font-variation-settings does not handle uppercase axis names in variable fonts
[WebKit-https.git] / JSTests / controlFlowProfiler / execution-count.js
1 load("./driver/driver.js");
2
3 function noop() { ; }
4 function foo(num) {
5     for (let i = 0; i < num; i++) {
6         noop(); 
7     }
8 }
9
10 function a() { ; }
11 function b() { ; }
12
13 function baz(num) {
14     for (let i = 0; i < num; i++) {
15         i % 2 ? a() : b();
16     }
17 }
18
19 function jaz(num) {
20     for (let i = 0; i < num; i++) {
21         if (i % 2)
22             a();
23         else
24             b();
25     }
26 }
27
28 function testWhile(num) {
29     let i = num;
30     while (i--) {
31         noop();
32         if (i % 2)
33             a();
34         else
35             b();
36     }
37 }
38
39 foo(120);
40 assert(basicBlockExecutionCount(foo, "noop()") === 120);
41 noop();
42 assert(basicBlockExecutionCount(noop, ";") === 121);
43
44 baz(140);
45 assert(basicBlockExecutionCount(baz, "a()") === 140/2);
46 assert(basicBlockExecutionCount(baz, "b()") === 140/2);
47 assert(basicBlockExecutionCount(a, ";") === 140/2);
48 assert(basicBlockExecutionCount(b, ";") === 140/2);
49
50 jaz(140);
51 assert(basicBlockExecutionCount(jaz, "a()") === 140/2);
52 assert(basicBlockExecutionCount(jaz, "b()") === 140/2);
53
54 testWhile(140);
55 assert(basicBlockExecutionCount(testWhile, "noop()") === 140);
56 assert(basicBlockExecutionCount(testWhile, "a()") === 140/2);
57 assert(basicBlockExecutionCount(testWhile, "b()") === 140/2);
58
59 if (is32BitPlatform()) {
60     function testMax() {
61         let j = 0;
62         let numIters = Math.pow(2, 32) + 10;
63         for (let i = 0; i < numIters; i++) {
64             j++;
65         }
66     }
67
68     testMax();
69     assert(basicBlockExecutionCount(testMax, "j++") === Math.pow(2, 32) - 1);
70 }