       (when-not (load-and-callback!
                   (str path (first extensions))
                   (extension->lang (first extensions))
-                  (cache-prefix-for-path path)
+                  (cache-prefix-for-path path macros)
                   cb)
         (recur (next extensions)))
       (cb nil))))

(defn- cached-callback-data
  [path cache-prefix source source-modified raw-load]
  (let [cache-prefix (if (= :calculate-cache-prefix cache-prefix)
                       (cache-prefix-for-path (second (extract-cache-metadata-mem source)))
                       cache-prefix)
        [js-source js-modified] (or (raw-load (add-suffix path ".js"))
                                    (js/PLANCK_READ_FILE (str cache-prefix ".js")))

  [js-source]
  (second (re-find #"// Compiled by ClojureScript (\S*)" js-source)))

(defn is-macros?
  [cache]
  (s/ends-with? (str (:name cache)) "$macros"))

(defn caching-js-eval
  [{:keys [path name source cache]}]
  (when (and path source cache (:cache-path @app-env))
    (js/PLANCK_CACHE (cache-prefix-for-path path (is-macros? cache))
      (str (compiled-by-string) "\n" source) (cljs->transit-json cache)))
  (js/eval source))

(defn extension->lang
