           "for" path))
       (when (and sourcemap-json name)
         (swap! st assoc-in [:source-maps name] (transit-json->cljs sourcemap-json)))
-      (js/PLANCK_EVAL js-source path)
+      (when-not (skip-load-js? name)
+        (js/PLANCK_EVAL js-source path))
       (merge {:lang   :js
               :source ""}
         (when cache-json

(defn- skip-load?
    [{:keys [name macros]}]
    (or
      (= name 'cljs.core)
      (= name 'cljs.env)
      (and (= name 'cljs.env.macros) macros)
      (and (= name 'cljs.analyzer.macros) macros)
      (and (= name 'cljs.compiler.macros) macros)

                  (and (= *clojurescript-version* cljs-ver)
                       (= build-affecting-options (form-build-affecting-options))))))))

;; Represents code for which the JS is already loaded (but for which the analysis cache may not be)
(defn- skip-load-js?
  [name]
  ('#{cljs.analyzer
      cljs.compiler
      cljs.env
      cljs.reader
      cljs.source-map
      cljs.source-map.base64
      cljs.source-map.base64-vlq
      cljs.stacktrace
      cljs.tagged-literals
      cljs.tools.reader.impl.utils
      cljs.tools.reader.reader-types
      clojure.set
      clojure.string
      cognitect.transit} name))

(defn- cached-callback-data
  [name path cache-prefix source source-modified raw-load]
  (let [cache-prefix (if (= :calculate-cache-prefix cache-prefix)
