@@ -4389,9 +4389,6 @@ Compressor.prototype.compress = function(node) {
|
||||
"setUTCMonth",
|
||||
"setUTCSeconds",
|
||||
"setYear",
|
||||
"toExponential",
|
||||
"toFixed",
|
||||
"toPrecision",
|
||||
]);
|
||||
def(AST_Call, function(compressor) {
|
||||
if (!compressor.option("unsafe")) return false;
|
||||
@@ -4442,7 +4439,10 @@ Compressor.prototype.compress = function(node) {
|
||||
"charAt",
|
||||
"substr",
|
||||
"substring",
|
||||
"toExponential",
|
||||
"toFixed",
|
||||
"toLowerCase",
|
||||
"toPrecision",
|
||||
"toString",
|
||||
"toUpperCase",
|
||||
"trim",
|
||||
@@ -10771,6 +10771,9 @@ Compressor.prototype.compress = function(node) {
|
||||
if (seq !== self) return seq.optimize(compressor);
|
||||
}
|
||||
switch (op) {
|
||||
case "+":
|
||||
if (compressor.option("evaluate") && exp.is_number(compressor)) return exp;
|
||||
break;
|
||||
case "-":
|
||||
if (exp instanceof AST_Infinity) exp = exp.transform(compressor);
|
||||
// avoids infinite recursion of numerals
|
||||
@@ -11477,19 +11480,17 @@ Compressor.prototype.compress = function(node) {
|
||||
if (self.left.value == 0) {
|
||||
if (self.right.is_boolean(compressor)) return make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.right
|
||||
expression: self.right,
|
||||
}).optimize(compressor);
|
||||
if (self.right.is_number(compressor) && !self.right.is_negative_zero()) return self.right;
|
||||
}
|
||||
break;
|
||||
// 1 * n ---> n
|
||||
case "*":
|
||||
if (self.left.value == 1) {
|
||||
return self.right.is_number(compressor) ? self.right : make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.right
|
||||
}).optimize(compressor);
|
||||
}
|
||||
if (self.left.value == 1) return make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.right,
|
||||
}).optimize(compressor);
|
||||
break;
|
||||
}
|
||||
if (self.right instanceof AST_Number && !self.left.is_constant()) switch (self.operator) {
|
||||
@@ -11498,28 +11499,24 @@ Compressor.prototype.compress = function(node) {
|
||||
if (self.right.value == 0) {
|
||||
if (self.left.is_boolean(compressor)) return make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.left
|
||||
expression: self.left,
|
||||
}).optimize(compressor);
|
||||
if (self.left.is_number(compressor) && !self.left.is_negative_zero()) return self.left;
|
||||
}
|
||||
break;
|
||||
// n - 0 ---> n
|
||||
case "-":
|
||||
if (self.right.value == 0) {
|
||||
return self.left.is_number(compressor) ? self.left : make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.left
|
||||
}).optimize(compressor);
|
||||
}
|
||||
if (self.right.value == 0) return make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.left,
|
||||
}).optimize(compressor);
|
||||
break;
|
||||
// n / 1 ---> n
|
||||
case "/":
|
||||
if (self.right.value == 1) {
|
||||
return self.left.is_number(compressor) ? self.left : make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.left
|
||||
}).optimize(compressor);
|
||||
}
|
||||
if (self.right.value == 1) return make_node(AST_UnaryPrefix, self, {
|
||||
operator: "+",
|
||||
expression: self.left,
|
||||
}).optimize(compressor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user