Accept string or number as name of an accessor.
authorMihai Bazon <mihai@bazon.net>
Fri, 21 Dec 2012 23:24:04 +0000 (01:24 +0200)
committerMihai Bazon <mihai@bazon.net>
Fri, 21 Dec 2012 23:24:04 +0000 (01:24 +0200)
[not sure I'm happy about this fix]

Reference mishoo/UglifyJS#478

lib/parse.js

index ffdd7a5..5b6820f 100644 (file)
@@ -881,11 +881,14 @@ function parse($TEXT, options) {
     };
 
     var function_ = function(in_statement, ctor) {
-        var name = is("name") ? as_symbol(in_statement
-                                          ? AST_SymbolDefun
-                                          : ctor === AST_Accessor
-                                          ? AST_SymbolAccessor
-                                          : AST_SymbolLambda) : null;
+        var is_accessor = ctor === AST_Accessor;
+        var name = (is("name") ? as_symbol(in_statement
+                                           ? AST_SymbolDefun
+                                           : is_accessor
+                                           ? AST_SymbolAccessor
+                                           : AST_SymbolLambda)
+                    : is_accessor && (is("string") || is("num")) ? as_atom_node()
+                    : null);
         if (in_statement && !name)
             unexpected();
         expect("(");