[Pkg-javascript-commits] [uglifyjs] 17/228: fix stray else in compress with conditionals=false

Jonas Smedegaard dr at jones.dk
Sat Apr 15 14:25:12 UTC 2017


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository uglifyjs.

commit d11dca3cf9e34302ce12a6c9f1cd81b22551f2ba
Author: kzc <zaxxon2011 at gmail.com>
Date:   Sat Feb 18 19:02:59 2017 +0800

    fix stray else in compress with conditionals=false
    
    closes #1449
---
 lib/compress.js             |  3 ++-
 test/compress/issue-1447.js | 45 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/lib/compress.js b/lib/compress.js
index b49ebef..459256f 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1840,6 +1840,8 @@ merge(Compressor.prototype, {
     });
 
     OPT(AST_If, function(self, compressor){
+        if (is_empty(self.alternative)) self.alternative = null;
+
         if (!compressor.option("conditionals")) return self;
         // if condition can be statically determined, warn and drop
         // one of the blocks.  note, statically determined implies
@@ -1868,7 +1870,6 @@ merge(Compressor.prototype, {
                 }
             }
         }
-        if (is_empty(self.alternative)) self.alternative = null;
         var negated = self.condition.negate(compressor);
         var self_condition_length = self.condition.print_to_string().length;
         var negated_length = negated.print_to_string().length;
diff --git a/test/compress/issue-1447.js b/test/compress/issue-1447.js
new file mode 100644
index 0000000..163acbc
--- /dev/null
+++ b/test/compress/issue-1447.js
@@ -0,0 +1,45 @@
+else_with_empty_block: {
+    options = {}
+    input: {
+        if (x)
+            yes();
+        else {
+        }
+    }
+    expect_exact: "if(x)yes();"
+}
+
+else_with_empty_statement: {
+    options = {}
+    input: {
+        if (x)
+            yes();
+        else
+            ;
+    }
+    expect_exact: "if(x)yes();"
+}
+
+conditional_false_stray_else_in_loop: {
+    options = {
+        evaluate     : true,
+        comparisons  : true,
+        booleans     : true,
+        unused       : true,
+        loops        : true,
+        side_effects : true,
+        dead_code    : true,
+        hoist_vars   : true,
+        join_vars    : true,
+        if_return    : true,
+        cascade      : true,
+        conditionals : false,
+    }
+    input: {
+        for (var i = 1; i <= 4; ++i) {
+            if (i <= 2) continue;
+            console.log(i);
+        }
+    }
+    expect_exact: "for(var i=1;i<=4;++i)if(!(i<=2))console.log(i);"
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list