(defn
list
"Creates a new list containing the items."
[& xs]
(let
[arr
(if
(and (instance? IndexedSeq xs) (zero? (.-i xs)))
(.-arr xs)
(let
[arr (array)]
(loop
[xs xs]
(if-not
(nil? xs)
(do (.push arr (-first xs)) (recur (-next xs)))
arr))))]
(loop
[i (alength arr) r ()]
(if (> i 0) (recur (dec i) (-conj r (aget arr (dec i)))) r))))