[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 8abf087 025/110: Report error for binding initializer outs
From: |
Dmitry Gutov |
Subject: |
[elpa] master 8abf087 025/110: Report error for binding initializer outside destructuring |
Date: |
Thu, 23 Jun 2016 01:12:54 +0000 (UTC) |
branch: master
commit 8abf087d0a66aee071fdf2dd5a249a22a0855959
Author: Carl Lei <address@hidden>
Commit: Carl Lei <address@hidden>
Report error for binding initializer outside destructuring
This reports error for both object literals and class bodies, but only
tests object literals; because if ES7 class property initializers are
added, the error no longer makes sense and needs another message,
e.g. missing semicolon after property initializer.
---
js2-mode.el | 5 +++++
tests/parser.el | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/js2-mode.el b/js2-mode.el
index 249f4ca..643e921 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -1717,6 +1717,9 @@ the correct number of ARGS must be provided."
(js2-msg "msg.destruct.assign.no.init"
"Missing = in destructuring declaration")
+(js2-msg "msg.init.no.destruct"
+ "Binding initializer not in destructuring assignment")
+
(js2-msg "msg.no.octal.strict"
"Octal numbers prohibited in strict mode.")
@@ -10725,6 +10728,8 @@ When `js2-is-in-destructuring' is t, forms like {a, b,
c} will be permitted."
;; binding element with initializer
((and (= (js2-peek-token) js2-ASSIGN)
(>= js2-language-version 200))
+ (if (not js2-is-in-destructuring)
+ (js2-report-error "msg.init.no.destruct"))
(js2-parse-initialized-binding key))
;; regular prop
(t
diff --git a/tests/parser.el b/tests/parser.el
index 51b03eb..136b97c 100644
--- a/tests/parser.el
+++ b/tests/parser.el
@@ -198,6 +198,11 @@ the test."
(should (equal '("msg.var.redecl" "a")
(caar js2-parsed-warnings))))
+(js2-deftest initializer-outside-destruct-is-error "({a=1});"
+ (js2-mode)
+ (should (equal "msg.init.no.destruct"
+ (car (caar js2-parsed-errors)))))
+
;;; Object literals
(js2-deftest-parse object-literal-shorthand
- [elpa] master updated (7a2deff -> 04f3d4b), Dmitry Gutov, 2016/06/22
- [elpa] master f85abdd 005/110: Fix docstring to conform to the Elisp guideline, Dmitry Gutov, 2016/06/22
- [elpa] master b035bd0 006/110: Extract contextual keyword highlighting process from a predicate function, Dmitry Gutov, 2016/06/22
- [elpa] master cef7731 016/110: Handle open-curlies after newline, Dmitry Gutov, 2016/06/22
- [elpa] master 84379dd 004/110: Treat async/await as contextual keywords; Refs #185, Dmitry Gutov, 2016/06/22
- [elpa] master a2be944 014/110: Add a test for the latest change, Dmitry Gutov, 2016/06/22
- [elpa] master 34245fe 008/110: Don't treat getter / setter pairs as duplicates, Dmitry Gutov, 2016/06/22
- [elpa] master fb3f5b6 010/110: Fix 'make all' on older emacsen, Dmitry Gutov, 2016/06/22
- [elpa] master 37867af 020/110: Add NEWS entry about rename to method-node, Dmitry Gutov, 2016/06/22
- [elpa] master b904d10 023/110: Merge pull request #279 from XeCycle/class-semicolon-elem, Dmitry Gutov, 2016/06/22
- [elpa] master 8abf087 025/110: Report error for binding initializer outside destructuring,
Dmitry Gutov <=
- [elpa] master 4c0408b 032/110: Add NEWS entry for js2-jsx-mode, Dmitry Gutov, 2016/06/22
- [elpa] master bfb83dd 017/110: Refactor: unify computed property name handling, Dmitry Gutov, 2016/06/22
- [elpa] master c63c700 029/110: Update MELPA URL, Dmitry Gutov, 2016/06/22
- [elpa] master a28a648 007/110: Remove await-node for 'awayt' and use unary-node, Dmitry Gutov, 2016/06/22
- [elpa] master 2cf52e9 015/110: js2-parse-highlight-prop-get: Take care now to overwrite the js2-function-call face, Dmitry Gutov, 2016/06/22
- [elpa] master 3603bc4 018/110: Add test on shorthand method name and scoping, Dmitry Gutov, 2016/06/22
- [elpa] master 0555a8a 024/110: Support initializer in destructuring, Dmitry Gutov, 2016/06/22
- [elpa] master 1f95553 033/110: Add js2-jsx-mode usage instructions, Dmitry Gutov, 2016/06/22
- [elpa] master 47b215d 011/110: Define js2-object-property face, Dmitry Gutov, 2016/06/22
- [elpa] master c0e0309 022/110: Allow semicolons in a class body, Dmitry Gutov, 2016/06/22