Welcome! Please see the About page for a little more info on how this works.

0 votes
in core.async by

ClojureScript 1.10.520, could not reproduce in Clojure. Reproduced in core.async 1.3.610 and 1.1.582, not reproducible in 1.0.567.

Looks the same as https://clojure.atlassian.net/browse/ASYNC-198?focusedCommentId=12026.

Code:

(ns app.main
  (:require [clojure.core.async :as a]))

(a/go
  (try
    (prn :ret
         (try
           (throw (ex-info "expected" {}))

           (catch js/Error e
             (prn :catch1)
             (throw e))

           (finally
             (prn :finally))))

    (catch js/Error _e
      (prn :catch2))))

Expected:

:catch1
:finally
:catch2

Actual:

:catch1
:finally
:ret #error {:message "expected", :data {}}

1 Answer

0 votes
by

One line reproduce:
clojure -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.10.520"} org.clojure/core.async {:mvn/version "1.3.610"}}}' -m cljs.main -re node -e "(require '[clojure.core.async :refer [go]]) (go (try (try (throw (ex-info "err" {:ex 42})) (catch js/Error e (throw e)) (finally (prn :finally))) (catch js/Error e (prn :catch2))))"

I tested with {clj,cljs} x {with-go,without-go} and it only work on cljs with go

by
Thanks for the report, tracking here https://clojure.atlassian.net/browse/ASYNC-232
...