            (-> (:*cljs-dep-set* bound-vars) meta :dep-path)))
        (if (seq deps)
          (let [dep (first deps)]
-           ((:*load-fn* bound-vars) (ns->relpath dep)
-             (fn [resolved]
-               (assert (or (map? resolved) (nil? resolved))
+           ((:*load-fn* bound-vars) {:name dep :path (ns->relpath dep)}
+             (fn [resource]
+               (assert (or (map? resource) (nil? resource))
                  "*load-fn* may only return a map or nil")
-               (if resolved
-                 (let [{:keys [lang source]} resolved]
+               (if resource
+                 (let [{:keys [lang source]} resource]
                    (condp = lang
                      :clj (analyze* bound-vars source opts
                             (fn []

;; -----------------------------------------------------------------------------
;; Evaluate String

(defn eval-str* [bound-vars source opts cb]
  (let [rdr  (rt/string-push-back-reader source)
        eof  (js-obj)
        aenv (ana/empty-env)

      :*load-macros*  (or (:load-macros opts) true)
      :*load-fn*      (or (:load-fn opts) *load-fn*)
      :*eval-fn*      (or (:eval-fn opts) *eval-fn*)}
     source name opts cb)))