Fix parsing `a.case /= 1`
authorMihai Bazon <mihai@bazon.net>
Mon, 2 Sep 2013 08:09:54 +0000 (11:09 +0300)
committerMihai Bazon <mihai@bazon.net>
Mon, 2 Sep 2013 08:09:54 +0000 (11:09 +0300)
Close #286

lib/parse.js

index cc80a93..8801b50 100644 (file)
@@ -254,10 +254,12 @@ function tokenizer($TEXT, filename) {
         S.tokpos = S.pos;
     };
 
+    var prev_was_dot = false;
     function token(type, value, is_comment) {
         S.regex_allowed = ((type == "operator" && !UNARY_POSTFIX(value)) ||
-                           (type == "keyword" && KEYWORDS_BEFORE_EXPRESSION(value)) ||
+                           (!prev_was_dot && type == "keyword" && KEYWORDS_BEFORE_EXPRESSION(value)) ||
                            (type == "punc" && PUNC_BEFORE_EXPRESSION(value)));
+        prev_was_dot = (type == "punc" && value == ".");
         var ret = {
             type   : type,
             value  : value,