Previously it returned the abort node from the alternative branch. This is
not much use as it can be different from the one in the body
branch (i.e. return vs. throw) and can trick us into issues like #591.
Fix #591
def(AST_BlockStatement, block_aborts);
def(AST_SwitchBranch, block_aborts);
def(AST_If, function(){
- return this.alternative && aborts(this.body) && aborts(this.alternative);
+ return this.alternative && aborts(this.body) && aborts(this.alternative) && this;
});
})(function(node, func){
node.DEFMETHOD("aborts", func);