Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
[WebKit-https.git] / JSTests / controlFlowProfiler / if-statement.js
1 var hasBasicBlockExecuted = $vm.hasBasicBlockExecuted;
2
3 load("./driver/driver.js");
4
5 var a, b, c, d;
6
7 function testIf(x) {
8     if (x > 10 && x < 20) {
9         return a;
10     } else if (x > 20 && x < 30) {
11         return b;
12     } else if (x > 30 && x < 40) {
13         return c;
14     } else {
15         return d;
16     }
17
18     return null;
19 }
20
21 function noMatches(x) {
22     if (x > 10 && x < 20) {
23         return a;
24     } else if (x > 20 && x < 30) {
25         return b;
26     } else {
27         return c;
28     }
29 }
30
31 assert(!hasBasicBlockExecuted(testIf, "return a"), "should not have executed yet.");
32 assert(!hasBasicBlockExecuted(testIf, "return b"), "should not have executed yet.");
33 assert(!hasBasicBlockExecuted(testIf, "return c"), "should not have executed yet.");
34 assert(!hasBasicBlockExecuted(testIf, "return d"), "should not have executed yet.");
35
36 testIf(11);
37 assert(hasBasicBlockExecuted(testIf, "return a"), "should have executed.");
38 assert(hasBasicBlockExecuted(testIf, "x > 10"), "should have executed.");
39 assert(!hasBasicBlockExecuted(testIf, "return b"), "should not have executed yet.");
40
41 testIf(21);
42 assert(hasBasicBlockExecuted(testIf, "return b"), "should have executed.");
43 assert(!hasBasicBlockExecuted(testIf, "return c"), "should not have executed yet.");
44
45 testIf(31);
46 assert(hasBasicBlockExecuted(testIf, "return c"), "should have executed.");
47 assert(!hasBasicBlockExecuted(testIf, "return d"), "should not have executed yet.");
48
49 testIf(0);
50 assert(hasBasicBlockExecuted(testIf, "return d"), "should have executed.");
51
52
53 noMatches(0);
54 assert(!hasBasicBlockExecuted(noMatches, "return a"), "should not have executed yet.");
55 assert(hasBasicBlockExecuted(noMatches, "x > 10"), "should have executed.");
56 assert(!hasBasicBlockExecuted(noMatches, "return b"), "should not have executed yet.");
57 assert(hasBasicBlockExecuted(noMatches, "x > 20"), "should have executed.");
58 assert(hasBasicBlockExecuted(noMatches, "return c"), "should have executed.");