                    (swap! env/*compiler* assoc-in [::analyzed-cljs path] true)))
                ;; we want want to keep dependency analysis information
                ;; don't revert the environment - David
-               (let [{:keys [ns]} (parse-ns res (merge opts {:restore false :analyze-deps true}))]
+               (let [{:keys [ns]}
+                     (parse-ns res
+                       (merge opts
+                         {:restore false
+                          :analyze-deps true
+                          :load-macros true}))]
                  (when (or *verbose* (:verbose opts))
                    (util/debug-prn "Reading analysis cache for " res))
                  (swap! env/*compiler* assoc-in [::analyzed-cljs path] true)

    (when (and *analyze-deps* (seq uses))
      (check-uses uses env))
    (set! *cljs-ns* name)
    (when (and *analyze-deps* *load-macros*)
      (load-core)
      (doseq [nsym (concat (vals require-macros) (vals use-macros))]
        (clojure.core/require nsym))

        (forms-seq*)))))

(defn parse-ns
  "Helper for parsing only the ns information from a ClojureScript source
   file. By default does not load macros or perform any analysis of
   dependencies. If provided :analyze-deps and :load-macros these will
   be used for *analyze-deps* and *load-macros* bindings respectively."
  ([src] (parse-ns src nil nil))
  ([src opts] (parse-ns src nil opts))
  ([src dest opts]
