       (emits "cljs.core.PersistentVector.EMPTY")
       (let [cnt (count items)]
         (if (< cnt 32)
-          (emits "new cljs.core.PersistentVector(null, " cnt
-            ", 5, cljs.core.PersistentVector.EMPTY_NODE, ["  (comma-sep items) "], null)")
+          (emits "cljs.core.PersistentVector{null, " cnt
+            ", 5, cljs.core.PersistentVector.EMPTY_NODE, ["  (comma-sep items) "], null}")
           (emits "cljs.core.PersistentVector.fromArray([" (comma-sep items) "], true)"))))))
 
 (defn distinct-constants? [items]

    (emit-constant (hash x))
    (emits ",")
    (emit-constant nil)
    (emits ")")))

;; tagged literal support

(defmethod emit-constant java.util.Date [^java.util.Date date]
  (emits "new js.Date(" (.getTime date) ")"))

(defmethod emit-constant java.util.UUID [^java.util.UUID uuid]
  (emits "new cljs.core.UUID(\"" (.toString uuid) "\")"))

(defmacro emit-wrap [env & body]
  `(let [env# ~env]


        (<= (count keys) array-map-threshold)
        (if (distinct-keys? keys)
          (emits "cljs.core.PersistentArrayMap{null, " (count keys) ", ["
            (comma-sep (interleave keys vals))
            "], null}")
          (emits "cljs.core.PersistentArrayMap.fromArray(["
            (comma-sep (interleave keys vals))
            "], true, false)"))

