            a)))))
 
 (defn object-array
+  "Creates an array of objects. Does not coerce array, provided for compatibility
+  with Clojure."
   ([size-or-seq]
      (if (number? size-or-seq)
        (object-array size-or-seq nil)

    (rseq coll)
    (reduce conj () coll)))

(defn list [& xs]
  (let [arr (if (and (instance? IndexedSeq xs) (zero? (.-i xs)))
              (.-arr xs)
              (let [arr (array)]

  "Returns true if x is not nil, false otherwise."
  [x] (not (nil? x)))

(defn ^boolean object?
  "Returns true if x's constructor is Object"
  [x]
  (if-not (nil? x)
    (identical? (.-constructor x) js/Object)
    false))

(defn ^boolean string?
  "Returns true if x is a JavaScript string."
  [x]
  (goog/isString x))

(set! *unchecked-if* true)
