| description( |
| "Tests what happens if we fail to constant fold a LogicalNot that leads into a branch, when the CFA proves that the LogicalNot has a constant value." |
| ); |
| |
| function foo1(o) { |
| if (!!o.thingy) |
| return o.thingy(42); |
| else |
| return o.otherThingy(57); |
| } |
| |
| function foo2(o) { |
| if (!o.thingy) |
| return o.otherThingy(42); |
| else |
| return o.thingy(57); |
| } |
| |
| function Stuff() { |
| } |
| |
| Stuff.prototype = { |
| thingy: function(x) { return x + 1; }, |
| otherThingy: function(x) { return x - 1; } |
| }; |
| |
| dfgShouldBe(foo1, "foo1(new Stuff())", "43"); |
| dfgShouldBe(foo2, "foo2(new Stuff())", "58"); |