[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
- [elpa] 17/46: Check if buffer is alive before reparsing., (continued)
- [elpa] 17/46: Check if buffer is alive before reparsing., Dmitry Gutov, 2014/11/15
- [elpa] 19/46: Better docstrings, Dmitry Gutov, 2014/11/15
- [elpa] 14/46: Support ES6 generator comprehensions, Dmitry Gutov, 2014/11/15
- [elpa] 13/46: Support ES6 array comprehensions, Dmitry Gutov, 2014/11/15
- [elpa] 12/46: Add `.' to electric-indent-chars for method continuations, Dmitry Gutov, 2014/11/15
- [elpa] 15/46: Add Contributing section, Dmitry Gutov, 2014/11/15
- [elpa] 24/46: Small tweak, Dmitry Gutov, 2014/11/15
- [elpa] 23/46: Add js2-language-version checks, Dmitry Gutov, 2014/11/15
- [elpa] 25/46: Ignore integer overflow, Dmitry Gutov, 2014/11/15
- [elpa] 26/46: Allow 'in' operator inside 'for' init when unambiguous, Dmitry Gutov, 2014/11/15
- [elpa] 27/46: Fix parsing of let expressions,
Dmitry Gutov <=
- [elpa] 18/46: Merge pull request #149 from lewang/dont-parse-killed-buffer, Dmitry Gutov, 2014/11/15
- [elpa] 28/46: js2-parse-let: Simplify, Dmitry Gutov, 2014/11/15
- [elpa] 22/46: Support ES6 number literals, Dmitry Gutov, 2014/11/15
- [elpa] 21/46: js2-get-token-internal-1: add a FIXME, Dmitry Gutov, 2014/11/15
- [elpa] 20/46: js2-read-unicode-escape: use a stricter regexp, Dmitry Gutov, 2014/11/15
- [elpa] 29/46: Fontify negation operator, Dmitry Gutov, 2014/11/15
- [elpa] 32/46: Fix #171, Dmitry Gutov, 2014/11/15
- [elpa] 31/46: js2-mode-find-enclosing-node: Make docstring and impl consistent with name, Dmitry Gutov, 2014/11/15
- [elpa] 33/46: js2-parse-primary-expr: Make some vars "more" local, Dmitry Gutov, 2014/11/15
- [elpa] 34/46: Add imenu support for the Sencha framework, Dmitry Gutov, 2014/11/15