emacs-elpa-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]