        :logger
        stdout-log}
 
+      (add-closure-configurator closure-register-cljs-protocol-properties)
       (add-closure-configurator closure-add-replace-constants-pass)
       (add-closure-configurator closure-add-variable-maps)
       ))

  [state]
  (cond-> state
    (nil? (:compiler-env state))
    (assoc :compiler-env @(env/default-compiler-env state))))

(defn finalize-config
  "should be called AFTER all resources have been discovered (ie. after find-resources...)"

    ;; do not merge files that are already present from a different source path
    (when-let [existing (get-in state [:sources name])]
      (not (is-same-resource? src existing)))

    (do (when (not (and (not (get-in state [:sources name :from-jar]))
                        (:from-jar src)))
          ;; don't complain if we have a file from the fs and the conflict is from the jar
          ;; assume thats an intentional override
          (log state
            {:type :duplicate-resource
             :name name
             :path-use (get-in state [:sources name :source-path])
             :path-ignore (:source-path src)}))
        state)

    ;; now we need to handle conflicts for cljc/cljs files
