[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 908395e 11/31: Allow trailing comma in param list (#410)
From: |
Dmitry Gutov |
Subject: |
[elpa] master 908395e 11/31: Allow trailing comma in param list (#410) |
Date: |
Fri, 21 Jul 2017 09:04:55 -0400 (EDT) |
branch: master
commit 908395e3aa413b4293b35aab9d41a56f1dbe1e04
Author: Thomas Marek <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Allow trailing comma in param list (#410)
Fixes #403
---
NEWS.md | 4 ++++
js2-mode.el | 4 +++-
tests/parser.el | 4 ++++
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/NEWS.md b/NEWS.md
index 714bab8..587fe0d 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,9 @@
# History of user-visible changes
+## Next
+
+* Support for trailing commas in function parameter lists.
+
## 2017-01-16
* `js2-include-*-externs` are now evaluated on demand. As a result,
diff --git a/js2-mode.el b/js2-mode.el
index a6f156a..68e14c8 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -8310,7 +8310,9 @@ represented by FN-NODE at POS."
(js2-report-error "msg.param.after.rest" nil
(js2-node-pos param) (js2-node-len param)))
while
- (js2-match-token js2-COMMA))
+ (and (js2-match-token js2-COMMA)
+ (or (< js2-language-version 200)
+ (not (= js2-RP (js2-peek-token))))))
(when (and (not paren-free-arrow)
(js2-must-match js2-RP "msg.no.paren.after.parms"))
(setf (js2-function-node-rp fn-node) (- (js2-current-token-beg) pos)))
diff --git a/tests/parser.el b/tests/parser.el
index 371ad4c..e279900 100644
--- a/tests/parser.el
+++ b/tests/parser.el
@@ -300,6 +300,10 @@ the test."
(js2-deftest-parse function-with-rest-after-default-parameter
"function foo(a = 1, ...rest) {\n}")
+(js2-deftest-parse function-with-trailing-comma-in-param-list
+ "function foo(a, b,) {\n}"
+ :reference "function foo(a, b) {\n}")
+
;;; Strict mode errors
(js2-deftest-parse function-bad-strict-parameters
- [elpa] master da4793e 02/31: ignored warning support, (continued)
- [elpa] master da4793e 02/31: ignored warning support, Dmitry Gutov, 2017/07/21
- [elpa] master faf73e8 03/31: Merge pull request #404 from jordonbiondo/feature/ignore-warnings, Dmitry Gutov, 2017/07/21
- [elpa] master 0b09004 04/31: Drop msg.yield.parenthesized error, Dmitry Gutov, 2017/07/21
- [elpa] master 9b20642 01/31: Add support for /*jslint*/ declarations, Dmitry Gutov, 2017/07/21
- [elpa] master 8d05bb7 05/31: yield should not end a return statement, Dmitry Gutov, 2017/07/21
- [elpa] master bb6c388 06/31: ES6 yield is followed by AssignmentExpression, Dmitry Gutov, 2017/07/21
- [elpa] master 32f9782 12/31: Remove js2-mark-safe-local, it's unused now, Dmitry Gutov, 2017/07/21
- [elpa] master 71416f6 08/31: Merge pull request #366 from XeCycle/drop-yield-paren, Dmitry Gutov, 2017/07/21
- [elpa] master 4787b5f 09/31: Merge pull request #363 from XeCycle/class-public-field, Dmitry Gutov, 2017/07/21
- [elpa] master cb8607c 25/31: Add failing test for issue #420, Dmitry Gutov, 2017/07/21
- [elpa] master 908395e 11/31: Allow trailing comma in param list (#410),
Dmitry Gutov <=
- [elpa] master 659f683 14/31: Merge pull request #421 from raxod502/feat/C-M-j, Dmitry Gutov, 2017/07/21
- [elpa] master 8a5f492 20/31: Merge pull request #425 from shicks/jsdoc, Dmitry Gutov, 2017/07/21
- [elpa] master d3b31ba 10/31: js2-node-qname-component: Nandle computed properties, Dmitry Gutov, 2017/07/21
- [elpa] master 4a87822 13/31: Map C-M-j to js2-line-break, Dmitry Gutov, 2017/07/21
- [elpa] master ca7df5b 16/31: Merge branch 'master' of github.com:mooz/js2-mode, Dmitry Gutov, 2017/07/21
- [elpa] master b3f74f0 19/31: Fix jsdoc highlighting for tags w/ optional braces, Dmitry Gutov, 2017/07/21
- [elpa] master 9ce2542 07/31: Add support for ES7 class public fields, Dmitry Gutov, 2017/07/21
- [elpa] master 7349309 21/31: Add tests for `/*jslint*/` declarations, Dmitry Gutov, 2017/07/21
- [elpa] master b176925 24/31: Update NEWS.md, Dmitry Gutov, 2017/07/21
- [elpa] master 92a8857 23/31: Support async arrow function without parentheses, Dmitry Gutov, 2017/07/21