Skip to content

Commit

Permalink
enhance assignments (#3612)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexlamsl committed Nov 27, 2019
1 parent 168ae74 commit 5a88c30
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 6 deletions.
4 changes: 2 additions & 2 deletions lib/compress.js
Expand Up @@ -6720,8 +6720,8 @@ merge(Compressor.prototype, {
self.right = self.right.left;
}
}
if ((self.operator == "+=" || self.operator == "-=")
&& self.left.is_number(compressor)
if ((self.operator == "-=" || self.operator == "+="
&& (self.left.is_boolean(compressor) || self.left.is_number(compressor)))
&& self.right instanceof AST_Number
&& self.right.getValue() === 1) {
var op = self.operator.slice(0, -1);
Expand Down
42 changes: 38 additions & 4 deletions test/compress/assignment.js
Expand Up @@ -290,26 +290,60 @@ increment_decrement_2: {
expect_stdout: "42"
}

issue_3375: {
issue_3375_1: {
options = {
assignments: true,
reduce_vars: true,
}
input: {
console.log(typeof function(b) {
function p(o) {
console.log(typeof o, o);
}
p(function(b) {
var a = b += 1;
--b;
return a;
}("object"));
}
expect: {
console.log(typeof function(b) {
function p(o) {
console.log(typeof o, o);
}
p(function(b) {
var a = b += 1;
--b;
return a;
}("object"));
}
expect_stdout: "string"
expect_stdout: "string object1"
}

issue_3375_2: {
options = {
assignments: true,
reduce_vars: true,
}
input: {
function p(o) {
console.log(typeof o, o);
}
p(function(b) {
var a = b -= 1;
--b;
return a;
}("object"));
}
expect: {
function p(o) {
console.log(typeof o, o);
}
p(function(b) {
var a = --b;
--b;
return a;
}("object"));
}
expect_stdout: "number NaN"
}

issue_3427: {
Expand Down

0 comments on commit 5a88c30

Please sign in to comment.