improve if_return (#2727)
This commit is contained in:
@@ -1436,8 +1436,9 @@ merge(Compressor.prototype, {
|
||||
}
|
||||
//---
|
||||
// if (foo()) return x; [ return ; ] ==> return foo() ? x : undefined;
|
||||
if (multiple_if_returns && in_lambda && value && !stat.alternative
|
||||
&& (!next || next instanceof AST_Return)) {
|
||||
if (value && !stat.alternative
|
||||
&& (!next && in_lambda && multiple_if_returns
|
||||
|| next instanceof AST_Return)) {
|
||||
CHANGED = true;
|
||||
stat = stat.clone();
|
||||
stat.alternative = next || make_node(AST_Return, stat, {
|
||||
|
||||
@@ -372,3 +372,27 @@ if_var_return: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if_if_return_return: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
if_return: true,
|
||||
}
|
||||
input: {
|
||||
function f(a, b) {
|
||||
if (a) {
|
||||
if (b)
|
||||
return b;
|
||||
return;
|
||||
}
|
||||
g();
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
function f(a, b) {
|
||||
if (a)
|
||||
return b || void 0;
|
||||
g();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user