                                                          cljs.analyzer/*cljs-file*)))))
                            (assoc m test expr)))
         pairs (reduce (fn [m [test expr]]
-                        (cond
+                        (core/cond
                          (seq? test) (reduce (fn [m test]
                                                (let [test (if (core/symbol? test)
                                                             (core/list 'quote test)

                        (let [gi (gensym "i__")
                              gb (gensym "b__")
                              do-cmod (fn do-cmod [[[k v :as pair] & etc]]
                                        (cond
                                          (= k :let) `(let ~v ~(do-cmod etc))
                                          (= k :while) `(when ~v ~(do-cmod etc))
                                          (= k :when) `(if ~v

(defmacro array-map
  ([] `cljs.core.PersistentArrayMap.EMPTY)
  ([& kvs]
    (core/cond
      (core/> (count kvs) 16)
      `(hash-map ~@kvs)
      
