fix corner case in reduce_vars (#4665)

fixes #4664
This commit is contained in:
Alex Lam S.L
2021-02-18 18:04:33 +00:00
committed by GitHub
parent 7b4fd858ba
commit 10de27ca3d
3 changed files with 36 additions and 6 deletions

View File

@@ -757,7 +757,9 @@ merge(Compressor.prototype, {
var value = iife.args[i];
scan_declaration(tw, compressor, arg, function() {
var j = fn.argnames.indexOf(arg);
return (j < 0 ? value : iife.args[j]) || make_node(AST_Undefined, iife);
var arg = j < 0 ? value : iife.args[j];
if (arg instanceof AST_Sequence && arg.expressions.length < 2) arg = arg.expressions[0];
return arg || make_node(AST_Undefined, iife);
}, visit);
});
if (fn.rest) scan_declaration(tw, compressor, fn.rest, compressor.option("rests") && function() {
@@ -3644,7 +3646,7 @@ merge(Compressor.prototype, {
// methods to determine if an expression has a numeric result type
(function(def) {
def(AST_Node, return_false);
var binary = makePredicate("- * / % & | ^ << >> >>>");
var binary = makePredicate("- * / % ** & | ^ << >> >>>");
def(AST_Assign, function(compressor) {
return binary[this.operator.slice(0, -1)]
|| this.operator == "=" && this.right.is_number(compressor);