adding an imaginary "return undefined" can sometimes help

function f() {
  if (foo) return x();
  if (!bar) return y();
}

==>

function f() {
  return foo ? x() : bar ? void 0 : y();
}
This commit is contained in:
Mihai Bazon
2012-09-14 16:26:30 +03:00
parent 924aa58060
commit 5e83e7ec17
2 changed files with 49 additions and 25 deletions

View File

@@ -889,6 +889,10 @@ function OutputStream(options) {
var def = self.definition();
output.print_name(def ? def.mangled_name || def.name : self.name);
});
DEFPRINT(AST_Undefined, function(self, output){
// XXX: should add more options for this
output.print("void 0");
});
DEFPRINT(AST_This, function(self, output){
output.print("this");
});