`(var ,name ,@(when value-provided? (list value))))
(define-ps-special-form let (bindings &body body)
- `(js:let ,(mapcar #'car bindings)
- ,(ps-compile `(progn
- ,@(mapcar (lambda (bind)
- `(var ,(car bind) ,(cadr bind)))
- bindings)
- ,@body))))
+ `(js:let ,(mapcar #'car bindings)
+ ,@(let ((body-forms (if compile-expression?
+ `((progn
+ ,@(mapcar (lambda (bind)
+ `(var ,(car bind) ,(cadr bind)))
+ bindings)
+ ,@body))
+ `(,@(mapcar (lambda (bind)
+ `(var ,(car bind) ,(cadr bind)))
+ bindings)
+ ,@body))))
+ (mapcar #'ps-compile body-forms))))
(defpsmacro let* (bindings &body body)
(if bindings