fix for if (...) return; else return ...;
(it was assumed that the first `return` always contains a value) close #22
This commit is contained in:
parent
30faaf13ed
commit
70fd2b1f33
|
|
@ -1220,8 +1220,8 @@ merge(Compressor.prototype, {
|
|||
return make_node(self.body.CTOR, self, {
|
||||
value: make_node(AST_Conditional, self, {
|
||||
condition : self.condition,
|
||||
consequent : self.body.value,
|
||||
alternative : self.alternative.value || make_node(AST_Undefined, self).optimize(compressor)
|
||||
consequent : self.body.value || make_node(AST_Undefined, self.body).optimize(compressor),
|
||||
alternative : self.alternative.value || make_node(AST_Undefined, self.alternative).optimize(compressor)
|
||||
})
|
||||
}).transform(compressor);
|
||||
}
|
||||
|
|
|
|||
17
test/compress/issue-22.js
Normal file
17
test/compress/issue-22.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
return_with_no_value_in_if_body: {
|
||||
options = { conditionals: true };
|
||||
input: {
|
||||
function foo(bar) {
|
||||
if (bar) {
|
||||
return;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
function foo (bar) {
|
||||
return bar ? void 0 : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user