             (do (io/make-parents cache-index-file)
                 {}))
 
-        ;; FIXME: currently this doesn't accept any outside compiler options
+        ;; must invalidate cache if :output-feature-set changes
         cache-options
-        []
+        (goog-compiler-options state)
 
         cache-files
         (if (or (not= SHADOW-CACHE-KEY (:SHADOW-CACHE-KEY cache-index))

        (data/make-closure-compiler)

        co-opts
        (merge
          {:pretty-print true
           :pseudo-names false
           :language-in :ecmascript-next
           :output-feature-set :es5
           :source-map true}
          (get-output-options state))

        generate-source-map?
        (not (false? (:source-map js-options)))

                 :live-js-deps live-js-deps))
      )))

(defn goog-compiler-options [state]
  (merge
    {:pretty-print true
     :pseudo-names false
     :language-in :ecmascript-next
     :output-feature-set :es5
     :source-map true}
    (get-output-options state)))

(defn convert-goog*
  "convert Closure Library code since it may contain a random mix of ClosureJS and Closure Modules"
  [{:keys [js-options mode] :as state} sources]
