]> code.delx.au - gnu-emacs-elpa/commitdiff
js2-define-destruct-symbols: Speed up, theoretically
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 7 Sep 2015 03:21:06 +0000 (06:21 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 7 Sep 2015 03:21:06 +0000 (06:21 +0300)
js2-mode.el

index 37a4f2a735721cabfe4a81d7415708d94639ba5a..b885efd00096cebae8cecbc6df6b077051640c0d 100644 (file)
@@ -7982,26 +7982,26 @@ declared; probably to check them for errors."
           (js2-set-face (setq leftpos (js2-node-abs-pos node))
                         (+ leftpos (js2-node-len node))
                         face 'record))
-        (setq name-nodes (list node))))
+        (list node)))
      ((js2-object-node-p node)
       (dolist (elem (js2-object-node-elems node))
         (when (js2-object-prop-node-p elem)
-          (setq name-nodes
-                (append name-nodes
-                        (js2-define-destruct-symbols
-                         ;; In abbreviated destructuring {a, b}, right == left.
-                         (js2-object-prop-node-right elem)
-                         decl-type face ignore-not-in-block))))))
+          (push (js2-define-destruct-symbols
+                 ;; In abbreviated destructuring {a, b}, right == left.
+                 (js2-object-prop-node-right elem)
+                 decl-type face ignore-not-in-block)
+                name-nodes)))
+      (apply #'append (nreverse name-nodes)))
      ((js2-array-node-p node)
       (dolist (elem (js2-array-node-elems node))
         (when elem
-          (setq name-nodes
-                (append name-nodes
-                        (js2-define-destruct-symbols
-                         elem decl-type face ignore-not-in-block))))))
+          (push (js2-define-destruct-symbols
+                 elem decl-type face ignore-not-in-block)
+                name-nodes)))
+      (apply #'append (nreverse name-nodes)))
      (t (js2-report-error "msg.no.parm" nil (js2-node-abs-pos node)
-                          (js2-node-len node))))
-    name-nodes))
+                          (js2-node-len node))
+        nil))))
 
 (defvar js2-illegal-strict-identifiers
   '("eval" "arguments")