cljs.repl.browser/parse-stacktrace

multimethodremoved v1.7.10added v0.0-3053Edit
(parse-stacktrace repl-env st err opts)

Source code @ clojurescript:src/main/clojure/cljs/repl/browser.clj
(defmulti parse-stacktrace (fn [repl-env st err opts] (:ua-product err)))

Dispatch method @ clojurescript:src/main/clojure/cljs/repl/browser.clj
(defmethod parse-stacktrace :default
  [repl-env st err opts] st)

Dispatch method @ clojurescript:src/main/clojure/cljs/repl/browser.clj
(defmethod parse-stacktrace :chrome
  [repl-env st err opts]
  (->> st
    string/split-lines
    (drop-while #(.startsWith % "Error"))
    (take-while #(not (.startsWith % "    at eval")))
    (map #(chrome-st-el->frame repl-env % opts))
    (remove nil?)
    vec))

Dispatch method @ clojurescript:src/main/clojure/cljs/repl/browser.clj
(defmethod parse-stacktrace :safari
  [repl-env st err opts]
  (->> st
    string/split-lines
    (drop-while #(.startsWith % "Error"))
    (take-while #(not (.startsWith % "eval code")))
    (remove string/blank?)
    (map #(safari-st-el->frame repl-env % opts))
    (remove nil?)
    vec))

Dispatch method @ clojurescript:src/main/clojure/cljs/repl/browser.clj
(defmethod parse-stacktrace :firefox
  [repl-env st err opts]
  (->> st
    string/split-lines
    (drop-while #(.startsWith % "Error"))
    (take-while #(= (.indexOf % "> eval") -1))
    (remove string/blank?)
    (map #(firefox-st-el->frame repl-env % opts))
    (remove nil?)
    vec))