    Returns a map containing {:ns .. :provides .. :requires .. :file ..}.
    If the file was not compiled returns only {:file ...}"
   ([src]
-     (let [dest (rename-to-js src)] 
+     (let [dest (rename-to-js src)]
        (compile-file src dest)))
   ([src dest]
      (let [src-file (io/file src)

    {:dot-action ::call :target target :method (munge meth) :args args}
    {:dot-action ::call :target target :method (munge (first meth)) :args args}))

;; (.m o 1 2)
;; (. o m 1 2)
(defmethod build-dot-form [::symbol ::symbol ::list]
  [[target meth args]]
  (build-method-call target meth args))

;; (.m o)
;; (. o m)
(defmethod build-dot-form [::symbol ::symbol ()]
  [[target meth args]]


(defmethod parse 'if
  [op env [_ test then else :as form] name]
  (let [test-expr (disallowing-recur (analyze (assoc env :context :expr) test))
        then-expr (analyze env then)
        else-expr (analyze env else)]
    {:env env :op :if :form form
