                                            e
                                            be)]
                                  (when-not (dominates (first be2) k prefer-table)
-                                   (throw (str "Multiple methods in multimethod '" name
-                                               "' match dispatch value: " dispatch-val " -> " k
-                                               " and " (first be2) ", and neither is preferred")))
+                                   (throw (js/Error.
+                                           (str "Multiple methods in multimethod '" name
+                                                "' match dispatch value: " dispatch-val " -> " k
+                                                " and " (first be2) ", and neither is preferred"))))
                                  be2)))
                            nil @method-table)]
     (when best-entry

  (-nth [coll n]
    (if (and (<= 0 n) (< n (.length array)))
      (aget array n)
      #_(throw (str "No item " n " in vector of length " (.length array)))))
  (-nth [coll n not-found]
    (if (and (<= 0 n) (< n (.length array)))
      (aget array n)

      (+ start (* n step))
      (if (and (> start end) (= step 0))
        start
        (throw (js/Error. "Index out of bounds")))))
  (-nth [rng n not-found]
    (if (< n (-count rng))
      (+ start (* n step))
