     (flatten (map files sources)))
   Compilable
   (-compile [_ opts]
-    (flatten (map #(-compile % opts) sources))))
+    (dependency-order (flatten (map #(-compile % opts) sources)))))
 
 ;; Create an IReloadabel which can trigger the reload of other
 ;; reloadables.

    (filter-descendants dir pred))
  Compilable
  (-compile [this opts]
    (let [fs (files this)]
      (let [d (io/file dir)]
        (flatten (map #(-compile % (assoc opts :output-file (js-file-name d %)))
                      fs))))))

;; Provided IReloadable Implementations
;; ====================================

    (all-descendants-ending-with dirs ".cljs"))
  Compilable
  (-compile [_ opts]
    (dependency-order (flatten (map #(-compile % opts) dirs)))))

(defn rename-to-js
  "Rename any Clojure-based file to a JavaScript file."
