            (java.nio.charset Charset)
            (java.util Base64)))
 
-(def SHADOW-TIMESTAMP
+(def SHADOW-CACHE-KEY
   ;; timestamp to ensure that new shadow-cljs release always invalidate caches
   ;; technically needs to check all files but given that they'll all be in the
   ;; same jar one is enough
-  (util/resource-last-modified "shadow/build/closure.clj"))
+  [(util/resource-last-modified "shadow/build/closure.clj")
+   ;; in case someone sets a specific closure dependency
+   (util/resource-last-modified "com/google/javascript/jscomp/Compiler.class")])
 
 (defn noop-error-manager []
   (proxy [BasicErrorManager] []

                {}))

        cache-files
        (if (not= SHADOW-TIMESTAMP (:SHADOW-TIMESTAMP cache-index))
          ;; invalidate all cache when the timestamp of this file has changed
          []
          ;; compare each cache key

                  (cache/write-file cache-file output)

                  (assoc idx resource-id cache-key)))
              (assoc cache-index :SHADOW-CACHE-KEY SHADOW-CACHE-KEY)
              recompile-sources)))]

    (when need-compile?
