 (deftype InterleavedIndexHopMap [^:mutable cap ^:mutable cnt ^:mutable hop-idx ^:mutable ks]
   Object
   (hash [_ obj]
-     (let [h (hash obj)]
+     (let [h (bit-shift-right-zero-fill (hash obj) 0)]
        (if (== h 0)
          42
          h)))

             (if (< cap capacity)
               (recur (bit-shift-left cap 1))
               cap))
          hop-idx (js/Int32Array. (bit-shift-left cap 2))
          ks (js/Array. cap)]
      (->InterleavedIndexHopMap cap 0 hop-idx ks))))

          old-hop-idx-len (.-length old-hop-idx)
          old-keys ks]
      (do
        (set! hop-idx (js/Uint32Array. (* 2 (.-length hop-idx))))
        (set! ks (.concat ks (js/Array. cap)))
        (set! cap (bit-shift-left cap 1))
        (loop [slot 0]
