| load("./driver/driver.js"); |
| |
| var afSimple = y => y + 1, |
| afBlock = y => { y++; return y + 1;}, |
| afBlockWithCondition = x => { x > 0 ? x++ : x--; return x;}; |
| |
| checkBasicBlock(afSimple, "y + 1", ShouldNotHaveExecuted); |
| afSimple(1); |
| checkBasicBlock(afSimple, "y + 1", ShouldHaveExecuted); |
| |
| |
| checkBasicBlock(afBlock, "y++", ShouldNotHaveExecuted); |
| afBlock(2); |
| checkBasicBlock(afBlock, "y++", ShouldHaveExecuted); |
| checkBasicBlock(afBlock, "return y + 1", ShouldHaveExecuted); |
| |
| |
| checkBasicBlock(afBlockWithCondition,'x++', ShouldNotHaveExecuted); |
| afBlockWithCondition(10); |
| checkBasicBlock(afBlockWithCondition,'x++', ShouldHaveExecuted); |
| checkBasicBlock(afBlockWithCondition,'return x', ShouldHaveExecuted); |
| checkBasicBlock(afBlockWithCondition,'x--', ShouldNotHaveExecuted); |
| |
| |
| afBlockWithCondition(-10); |
| checkBasicBlock(afBlockWithCondition,'x--', ShouldHaveExecuted); |
| |
| function foo1(test) { |
| var f1 = () => { "hello"; } |
| if (test) |
| f1(); |
| } |
| foo1(false); |
| checkBasicBlock(foo1, '() =>', ShouldNotHaveExecuted); |
| checkBasicBlock(foo1, '; }', ShouldNotHaveExecuted); |
| foo1(true); |
| checkBasicBlock(foo1, '() =>', ShouldHaveExecuted); |
| checkBasicBlock(foo1, '; }', ShouldHaveExecuted); |
| |
| function foo2(test) { |
| var f1 = x => { "hello"; } |
| if (test) |
| f1(); |
| } |
| foo2(false); |
| checkBasicBlock(foo2, 'x =>', ShouldNotHaveExecuted); |
| checkBasicBlock(foo2, '; }', ShouldNotHaveExecuted); |
| foo2(true); |
| checkBasicBlock(foo2, 'x =>', ShouldHaveExecuted); |
| checkBasicBlock(foo2, '; }', ShouldHaveExecuted); |
| |
| |
| function foo3(test) { |
| var f1 = (xyz) => { "hello"; } |
| if (test) |
| f1(); |
| } |
| foo3(false); |
| checkBasicBlock(foo3, '(xyz) =>', ShouldNotHaveExecuted); |
| checkBasicBlock(foo3, '; }', ShouldNotHaveExecuted); |
| foo3(true); |
| checkBasicBlock(foo3, '(xyz) =>', ShouldHaveExecuted); |
| checkBasicBlock(foo3, '; }', ShouldHaveExecuted); |