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

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

[elpa] master 91c745a 04/38: Merge pull request #440 from felipeochoa/is


From: Dmitry Gutov
Subject: [elpa] master 91c745a 04/38: Merge pull request #440 from felipeochoa/issue439
Date: Wed, 28 Feb 2018 20:12:08 -0500 (EST)

branch: master
commit 91c745ad062d454834f646dcd16be6856a1db8b3
Merge: 7e4293b 4daab44
Author: Dmitry Gutov <address@hidden>
Commit: GitHub <address@hidden>

    Merge pull request #440 from felipeochoa/issue439
    
    make sure to visit import clause children in order
---
 js2-mode.el      |  6 +++---
 tests/consume.el | 16 ++++++++++++++++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/js2-mode.el b/js2-mode.el
index 2f2df7b..4a9a068 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -2843,13 +2843,13 @@ local context."
   (let ((ns-import (js2-import-clause-node-namespace-import n))
         (named-imports (js2-import-clause-node-named-imports n))
         (default (js2-import-clause-node-default-binding n)))
+    (when default
+      (js2-visit-ast default v))
     (when ns-import
       (js2-visit-ast ns-import v))
     (when named-imports
       (dolist (import named-imports)
-        (js2-visit-ast import v)))
-    (when default
-      (js2-visit-ast default v))))
+        (js2-visit-ast import v)))))
 
 (defun js2-print-import-clause (n)
   (let ((ns-import (js2-import-clause-node-namespace-import n))
diff --git a/tests/consume.el b/tests/consume.el
index 935cdeb..c48f6a0 100644
--- a/tests/consume.el
+++ b/tests/consume.el
@@ -57,3 +57,19 @@
       (setq comments (js2-comments-between 8 9 comments))
       (should (= (length comments) 1))
       )))
+
+;;; Visitors
+
+(ert-deftest js2-visit-import-clause-in-order ()
+  (with-temp-buffer
+    (insert "import defaultImport, { a, b, c} from 'xyz';")
+    (js2-mode--and-parse)
+    (let (visit-log)
+     (js2-visit-ast js2-mode-ast (lambda (node end-p)
+                                   (when (and (not end-p) (js2-name-node-p 
node))
+                                     (let* ((start (js2-node-abs-pos node))
+                                            (end (+ start (js2-node-len 
node))))
+                                       (push (buffer-substring-no-properties 
start end) visit-log)))
+                                   t))
+     (setq visit-log (nreverse visit-log))
+     (should (equal visit-log (list "defaultImport" "a" "b" "c"))))))



reply via email to

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