(if (ps-reserved-symbol-p symbol)
(funcall (get-ps-special-form symbol))
(error "Attempting to use Parenscript special form ~a as variable" symbol)))
- (t `(js:variable ,symbol))))))
+ (t (aif (compound-symbol-p symbol)
+ it
+ `(js:variable ,symbol)))))))
;;; operators
',(make-symbol (subseq (symbol-name (first form)) 1)))
,@(cddr form))))
+(defun function-name->js-expression (name)
+ (aif (compound-symbol-p name)
+ it
+ `(js:variable ,(maybe-rename-local-function name))))
+
(defun compile-funcall-form (form)
`(js:funcall
,(if (symbolp (car form))
- `(js:variable ,(maybe-rename-local-function (car form)))
+ (function-name->js-expression (car form))
(ps-compile-expression (ps-macroexpand (car form))))
,@(mapcar #'ps-compile-expression (cdr form))))