aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/compress.js16
-rw-r--r--test/compress/issue-105.js5
2 files changed, 10 insertions, 11 deletions
diff --git a/lib/compress.js b/lib/compress.js
index 992d78f8..c994a3ab 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1751,14 +1751,14 @@ merge(Compressor.prototype, {
// XXX: intentionally falling down to the next case
case "==":
case "!=":
- if (self.left instanceof AST_String
- && self.left.value == "undefined"
- && self.right instanceof AST_UnaryPrefix
- && self.right.operator == "typeof"
- && compressor.option("unsafe")) {
- if (!(self.right.expression instanceof AST_SymbolRef)
- || !self.right.expression.undeclared()) {
- self.left = self.right.expression;
+ if (compressor.option("unsafe")
+ && self.left instanceof AST_UnaryPrefix
+ && self.left.operator == "typeof"
+ && self.right instanceof AST_String
+ && self.right.value == "undefined") {
+ if (!(self.left.expression instanceof AST_SymbolRef)
+ || !self.left.expression.undeclared()) {
+ self.left = self.left.expression;
self.right = make_node(AST_Undefined, self.left).optimize(compressor);
if (self.operator.length == 2) self.operator += "=";
}
diff --git a/test/compress/issue-105.js b/test/compress/issue-105.js
index 349d732d..0c37eb82 100644
--- a/test/compress/issue-105.js
+++ b/test/compress/issue-105.js
@@ -1,10 +1,9 @@
typeof_eq_undefined: {
options = {
- comparisons: true,
- unsafe: false
+ comparisons: true
};
input: { a = typeof b.c != "undefined" }
- expect: { a = "undefined" != typeof b.c }
+ expect: { a = typeof b.c != "undefined" }
}
typeof_eq_undefined_unsafe: {