                (when variadic
                  (emits "var ")
                  (emit (last params))
-                 (emits " = null;")
+                 (emitln " = null;")
                  (emitln "if (arguments.length > " (dec (count params)) ") {")
                  (emits "  ")
                  (emit (last params))
-                 (emits " = cljs.core.array_seq(Array.prototype.slice.call(arguments, " (dec (count params)) "),0);")
+                 (emitln " = cljs.core.array_seq(Array.prototype.slice.call(arguments, " (dec (count params)) "),0);")
                  (emitln "} "))
                (emits "return " delegate-name ".call(this,")
                (doseq [param params]

               (doseq [param params]
                 (emit param)
                 (when-not (= param (last params)) (emits ",")))
               (emits "){")
               (when recurs (emitln "while(true){"))
               (emits expr)
               (when recurs

  (emit-wrap env
    (emits "(function " (munge name) "(")
    (emit-fn-params params)
    (emitln "){")
    (when type
      (emitln "var self__ = this;"))
    (when recurs (emitln "while(true){"))
