Function: js--optimize-arglist
js--optimize-arglist is a byte-compiled function defined in js.el.gz.
Signature
(js--optimize-arglist ARGLIST)
Documentation
Convert immediate js< and js! references to deferred ones.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/js.el.gz
(eval-and-compile
(defun js--optimize-arglist (arglist)
"Convert immediate js< and js! references to deferred ones."
(cl-loop for item in arglist
if (eq (car-safe item) 'js<)
collect (append (list 'list ''js--funcall
'(list 'interactor "_getProp"))
(js--optimize-arglist (cdr item)))
else if (eq (car-safe item) 'js>)
collect (append (list 'list ''js--funcall
'(list 'interactor "_putProp"))
(if (atom (cadr item))
(list (cadr item))
(list
(append
(list 'list ''js--funcall
'(list 'interactor "_mkArray"))
(js--optimize-arglist (cadr item)))))
(js--optimize-arglist (cddr item)))
else if (eq (car-safe item) 'js!)
collect (pcase-let ((`(,_ ,function . ,body) item))
(append (list 'list ''js--funcall
(if (consp function)
(cons 'list
(js--optimize-arglist function))
function))
(js--optimize-arglist body)))
else
collect item)))