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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] 27/46: Fix parsing of let expressions


From: Dmitry Gutov
Subject: [elpa] 27/46: Fix parsing of let expressions
Date: Sat, 15 Nov 2014 20:58:06 +0000

dgutov pushed a commit to branch master
in repository elpa.

commit 0eeb9d24c672d1f75d9a55d265498bbd0426282f
Author: kaki <address@hidden>
Date:   Mon Sep 8 23:27:45 2014 +0900

    Fix parsing of let expressions
---
 js2-mode.el     |    7 +++++--
 tests/parser.el |    3 +++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/js2-mode.el b/js2-mode.el
index 62a9da4..ec261e7 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -3302,7 +3302,9 @@ Note that a let declaration such as let x=6, y=7 is a 
`js2-var-decl-node'."
 
 (defun js2-print-let-node (n i)
   (insert (js2-make-pad i) "let (")
-  (js2-print-ast (js2-let-node-vars n) 0)
+  (let ((p (point)))
+    (js2-print-ast (js2-let-node-vars n) 0)
+    (delete-region p (+ p 4)))
   (insert ") ")
   (js2-print-ast (js2-let-node-body n) i))
 
@@ -8471,10 +8473,11 @@ by `js2-parse-variables'."
                       (js2-let-node-body pn) body
                       (js2-node-type pn) js2-LET))
             ;; let expression
-            (js2-unget-token)
+            (when stmt-p (js2-unget-token))
             (setf body (js2-parse-expr)
                   (js2-node-len pn) (- (js2-node-end body) pos)
                   (js2-let-node-body pn) body))
+          (setf (js2-let-node-vars pn) vars)
           (js2-node-add-children pn vars body))
       (js2-pop-scope))
     pn))
diff --git a/tests/parser.el b/tests/parser.el
index 389d686..37d9afa 100644
--- a/tests/parser.el
+++ b/tests/parser.el
@@ -121,6 +121,9 @@ the test."
 (js2-deftest-parse for-with-in-operator-in-cond
   "for (var y = 1 ? 0 in [] : false in {}) {\n}")
 
+(js2-deftest-parse let-expression
+  "(let (x = 42) x);")
+
 ;;; Callers of `js2-valid-prop-name-token'
 
 (js2-deftest-parse parse-property-access-when-not-keyword



reply via email to

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