       (let [k (or (k reload)
                   (get-in reloads [k nsym])
                   (and (= nsym name) (:*reload-macros* bound-vars) :reload))]
-        (if k
-          (require bound-vars nsym k (assoc opts :macros-ns true)
-            (fn []
-              (load-macros bound-vars k (next macros) reload reloads opts cb)))
-          (require bound-vars nsym (assoc opts :macros-ns true)
-            (fn []
-              (load-macros bound-vars k (next macros) reload reloads opts cb))))
+        (require bound-vars nsym k (assoc opts :macros-ns true)
+          (fn []
+            (load-macros bound-vars k (next macros) reload reloads opts cb)))
         ;(intern-macros nsym k)
         ))
     (cb)))

                              :source js-source}]
               (when (:verbose opts)
                 (debug-prn js-source))
               (append-source-map env/*compiler*
                 name source sb @comp/*source-map-data* opts)
               (cb {:ns ns :value (*eval-fn* evalm)}))))))
      (:*cljs-ns* bound-vars))))


                   (fn [_] (compile-loop)))
                 (recur)))
             (do
               (when (:source-map opts)
                 (append-source-map env/*compiler*
                   name source sb @comp/*source-map-data* opts))
               (cb (.toString sb))))))))))

(defn compile
