Migrate %WHILE
authorDavid Vázquez <davazp@gmail.com>
Sun, 23 Jun 2013 13:30:12 +0000 (15:30 +0200)
committerDavid Vázquez <davazp@gmail.com>
Sun, 23 Jun 2013 13:30:12 +0000 (15:30 +0200)
src/compiler.lisp

index 1f14de5..2bff550 100644 (file)
   (literal sexp))
 
 (define-compilation %while (pred &rest body)
-  (js!selfcall
-    "while(" (ls-compile pred) " !== " (ls-compile nil) "){" *newline*
-    `(code ,(ls-compile-block body))
-    "}" *newline*
-    "return " (ls-compile nil) ";" *newline*))
+  (js!selfcall*
+    `(while (!== ,(ls-compile pred) ,(ls-compile nil))
+       0                                ; TODO: Force
+                                        ; braces. Unnecesary when code
+                                        ; is gone
+       (code ,(ls-compile-block body)))
+   `(return ,(ls-compile nil))))
 
 (define-compilation function (x)
   (cond