Fix reading arguments
authorMihai Bazon <mihai@bazon.net>
Tue, 29 Oct 2013 12:01:26 +0000 (14:01 +0200)
committerMihai Bazon <mihai@bazon.net>
Tue, 29 Oct 2013 12:01:26 +0000 (14:01 +0200)
i.e. read `-c unsafe,unsafe-comps` as `-c unsafe=true,unsafe_comps=true`

bin/uglifyjs

index 9bdb8ea..4160171 100755 (executable)
@@ -381,7 +381,7 @@ function getOptions(x, constants) {
     if (x !== true) {
         var ast;
         try {
-            ast = UglifyJS.parse(x);
+            ast = UglifyJS.parse(x, { expression: true });
         } catch(ex) {
             if (ex instanceof UglifyJS.JS_Parse_Error) {
                 sys.error("Error parsing arguments in: " + x);
@@ -389,8 +389,6 @@ function getOptions(x, constants) {
             }
         }
         ast.walk(new UglifyJS.TreeWalker(function(node){
-            if (node instanceof UglifyJS.AST_Toplevel) return; // descend
-            if (node instanceof UglifyJS.AST_SimpleStatement) return; // descend
             if (node instanceof UglifyJS.AST_Seq) return; // descend
             if (node instanceof UglifyJS.AST_Assign) {
                 var name = node.left.print_to_string({ beautify: false }).replace(/-/g, "_");
@@ -400,6 +398,11 @@ function getOptions(x, constants) {
                 ret[name] = value;
                 return true;    // no descend
             }
+            if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_Binary) {
+                var name = node.print_to_string({ beautify: false }).replace(/-/g, "_");
+                ret[name] = true;
+                return true;    // no descend
+            }
             sys.error(node.TYPE)
             sys.error("Error parsing arguments in: " + x);
             process.exit(1);