fix `AST_VarDef.may_throw()` (#2580)
authorAlex Lam S.L <alexlamsl@gmail.com>
Mon, 11 Dec 2017 19:30:25 +0000 (03:30 +0800)
committerGitHub <noreply@github.com>
Mon, 11 Dec 2017 19:30:25 +0000 (03:30 +0800)
lib/compress.js
test/compress/collapse_vars.js

index ce61ce9..14e8361 100644 (file)
@@ -2399,6 +2399,7 @@ merge(Compressor.prototype, {
             return this.expression.may_throw(compressor);
         });
         def(AST_VarDef, function(compressor){
+            if (!this.value) return false;
             return this.value.may_throw(compressor);
         });
     })(function(node, func){
index 2136b2f..330667d 100644 (file)
@@ -3785,3 +3785,23 @@ issue_2571_2: {
     }
     expect_stdout: "undefined"
 }
+
+may_throw: {
+    options = {
+        collapse_vars: true,
+    }
+    input: {
+        function f() {
+            var a_2 = function() {
+                var a;
+            }();
+        }
+    }
+    expect: {
+        function f() {
+            var a_2 = function() {
+                var a;
+            }();
+        }
+    }
+}