Have mozilla AST RegExpLiteral parser use regex.pattern and regex.flags rather than...
authorkzc <zaxxon2011@gmail.com>
Mon, 2 Nov 2015 17:24:09 +0000 (12:24 -0500)
committerkzc <zaxxon2011@gmail.com>
Mon, 2 Nov 2015 17:24:09 +0000 (12:24 -0500)
lib/mozilla-ast.js

index 15be458..7ce6e78 100644 (file)
               case "boolean":
                 return new (val ? AST_True : AST_False)(args);
               default:
-                args.value = M.regex && M.raw ? M.raw : val;
+                var rx = M.regex;
+                if (rx && rx.pattern) {
+                    // RegExpLiteral as per ESTree AST spec
+                    args.value = "/" + rx.pattern + "/";
+                    if (rx.flags) {
+                        args.value += rx.flags;
+                    }
+                } else {
+                    // support legacy RegExp
+                    args.value = M.regex && M.raw ? M.raw : val;
+                }
                 return new AST_RegExp(args);
             }
         },
         };
     });
 
-    def_to_moz(AST_RegExp, function To_Moz_RegExp(M) {
+    def_to_moz(AST_RegExp, function To_Moz_RegExpLiteral(M) {
         var value = M.value;
         return {
             type: "Literal",