Lexical renaming rework (part one and a half)
[clinton/parenscript.git] / src / printer.lisp
index 66c07ff..b45f1c6 100644 (file)
@@ -131,14 +131,15 @@ arguments, defines a printer for that form using the given body."
   (or (cdr (assoc name *lexical-bindings*))
       name))
 
-(defprinter js:let (variables expression)
+(defprinter js:let (variables &body body)
   (let ((*lexical-bindings*
         (append (mapcar (lambda (var)
                           (cons var (if (assoc var *lexical-bindings*)
                                         (ps-gensym var)
                                         var)))
                         variables))))
-    (ps-print expression)))
+    (loop for (exp . remaining) on body do
+        (ps-print exp) (when remaining (psw ";") (newline-and-indent)))))
 
 (defprinter js:variable (var)
   (psw (symbol-to-js-string (rename-js-variable var))))