`(js:variable ,(maybe-rename-local-function name))))
(defun compile-funcall-form (form)
- `(js:funcall
+ `(js::funcall
,(if (symbolp (car form))
(function-name->js-expression (car form))
(ps-compile-expression (ps-macroexpand (car form))))
`(%js-lambda ,effective-args
,@effective-body)))
-(define-ps-special-form flet (fn-defs &rest body)
- (let ((fn-renames (make-macro-dictionary)))
- (loop for (fn-name) in fn-defs do
- (setf (gethash fn-name fn-renames) (ps-gensym fn-name)))
- (let ((fn-defs (ps-compile
- `(progn ,@(loop for (fn-name . def) in fn-defs collect
- `(var ,(gethash fn-name fn-renames) (lambda ,@def))))))
- (*ps-local-function-names* (cons fn-renames *ps-local-function-names*)))
- (append fn-defs (cdr (ps-compile `(progn ,@body)))))))
-
(define-ps-special-form labels (fn-defs &rest body)
(with-local-macro-environment (local-fn-renames *ps-local-function-names*)
(loop for (fn-name) in fn-defs do
`(var ,(gethash fn-name local-fn-renames) (lambda ,@def)))
,@body))))
-(define-ps-special-form function (fn-name)
- (ps-compile (maybe-rename-local-function fn-name)))
-
(defvar *defun-setf-name-prefix* "__setf_")
(defpsmacro defun-setf (setf-name lambda-list &body body)
(defpsmacro defsetf (access-fn &rest args)
`(,(if (= (length args) 3) 'defsetf-long 'defsetf-short) ,access-fn ,@args))
-(defpsmacro funcall (&rest arg-form)
- arg-form)
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; macros
(define-ps-special-form macrolet (macros &body body)