cljs-dev 2026-01-24

I think I found a false positive warning here:

cljs.user=> (+ 1 2 (try (throw (throw 2)) (catch :default _ 1)))
WARNING: cljs.core/+, all arguments must be numbers, got [number ignore] instead at line 1 <cljs repl>
4

Async/await update. Uploaded patch 3470-4.patch. Contains optimization for keeping implicit IIFE sync when no await happens inside of it (and can then be optimized by Closure). I also forgot to add the test file to the test runner, which is now also done. https://clojure.atlassian.net/browse/CLJS-3470 https://github.com/borkdude/clojurescript/tree/js-await2 cc @dnolen @thheller

I think there's a bug somewhere. I can't get core.async to run anymore (based on the simple <! etc macros.

{:deps {org.clojure/clojurescript {:git/url ""
                                   ;; js-await branch (without IIFE optimizations)
                                   #_#_:git/sha "7640003cbf02e00e4c538c593ac5f24adcccb694"
                                   ;; js-await2 branch (with IIFE optimizations)
                                   :git/sha "a369320225a4e1f3b6d773094748b7c8dff90227"}

        org.clojure/core.async {:git/url ""
                                :git/sha "5f31738e15937986d7453736995e2f75b15fb265"}}}

I'll look into this later. This is a good test. I did confirm it still worked in the branch js-await before I did the optimizations.

Found the bug! A macro expanded into (clojure.core/await ...) which should also work

I updated patch 3470-4 with a fix in get-expander

now core.async fully works with it too, which is a good exercise for this optimization