blob: ecb0ffac02d449ea5a5dee0464aaec62e3d9946d [file] [log] [blame]
saambarati1@gmail.com15952502015-02-23 22:10:51 +00001load("./driver/driver.js");
2
3function foo(){ }
4function bar(){ }
5function baz(){ }
6
7function testConditionalBasic(x) {
8 return x ? 10 : 20;
9}
10
11
12testConditionalBasic(false);
13checkBasicBlock(testConditionalBasic, "x", ShouldHaveExecuted);
14checkBasicBlock(testConditionalBasic, "20", ShouldHaveExecuted);
15checkBasicBlock(testConditionalBasic, "10", ShouldNotHaveExecuted);
16
17testConditionalBasic(true);
18checkBasicBlock(testConditionalBasic, "10", ShouldHaveExecuted);
19
20
21function testConditionalFunctionCall(x, y) {
22 x ? y ? foo()
23 : baz()
24 : bar()
25}
26testConditionalFunctionCall(false, false);
saambarati1@gmail.comc497d152015-07-17 18:48:30 +000027checkBasicBlock(testConditionalFunctionCall, "x ?", ShouldHaveExecuted);
saambarati1@gmail.com15952502015-02-23 22:10:51 +000028checkBasicBlock(testConditionalFunctionCall, "? y", ShouldHaveExecuted);
29checkBasicBlock(testConditionalFunctionCall, "bar", ShouldHaveExecuted);
30checkBasicBlock(testConditionalFunctionCall, ": bar", ShouldHaveExecuted);
saambarati1@gmail.comc497d152015-07-17 18:48:30 +000031checkBasicBlock(testConditionalFunctionCall, "y ?", ShouldNotHaveExecuted);
saambarati1@gmail.com15952502015-02-23 22:10:51 +000032checkBasicBlock(testConditionalFunctionCall, "? foo", ShouldNotHaveExecuted);
33checkBasicBlock(testConditionalFunctionCall, "foo", ShouldNotHaveExecuted);
34checkBasicBlock(testConditionalFunctionCall, "baz", ShouldNotHaveExecuted);
35
36testConditionalFunctionCall(true, false);
saambarati1@gmail.comc497d152015-07-17 18:48:30 +000037checkBasicBlock(testConditionalFunctionCall, "y ?", ShouldHaveExecuted);
saambarati1@gmail.com15952502015-02-23 22:10:51 +000038checkBasicBlock(testConditionalFunctionCall, "? foo", ShouldHaveExecuted);
39checkBasicBlock(testConditionalFunctionCall, ": baz", ShouldHaveExecuted);
40checkBasicBlock(testConditionalFunctionCall, "baz", ShouldHaveExecuted);
41checkBasicBlock(testConditionalFunctionCall, "foo", ShouldNotHaveExecuted);
42
43testConditionalFunctionCall(true, true);
44checkBasicBlock(testConditionalFunctionCall, "foo", ShouldHaveExecuted);