[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