branch: externals/js2-mode
commit 515d876c6ae45a61cf67a7bd5723fe4c9e518756
Author: Dmitry Gutov <[email protected]>
Commit: Dmitry Gutov <[email protected]>
Fix parsing static props without semicolons
Fixes #477
---
js2-mode.el | 8 ++++++++
tests/parser.el | 3 +++
2 files changed, 11 insertions(+)
diff --git a/js2-mode.el b/js2-mode.el
index 64cc72c..924bc03 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -10960,6 +10960,14 @@ expression)."
elem-key-string previous-elem-key-string
after-comma previous-token)
(while continue
+ ;; Clear out any lookahead tokens (possibly wrong modifier).
+ ;; FIXME: Deal with this problem in a more systematic fashion.
+ ;; Perhaps by making this modifier affect not how the token
+ ;; struct is constructed, but when js2-get-token returns based
+ ;; on it.
+ (when (> js2-ti-lookahead 0)
+ (setq js2-ti-lookahead 0)
+ (setq js2-ts-cursor (js2-current-token-end)))
(setq tt (js2-get-prop-name-token)
static nil
elem nil
diff --git a/tests/parser.el b/tests/parser.el
index c87fa5f..2ad8b62 100644
--- a/tests/parser.el
+++ b/tests/parser.el
@@ -982,6 +982,9 @@ the test."
(js2-deftest-parse parse-class-public-field-computed
"class C {\n [a + b] = c\n}")
+(js2-deftest-parse parse-class-static-fields-no-semi
+ "class C {\n static a\n static b = 42\n}")
+
;;; Operators
(js2-deftest-parse exponentiation