File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ = 1.12.144 Release
2+ ClojureScript Team
3+ 2026-05-07 12:00:00
4+ :jbake-type: post
5+
6+ ifdef::env-github,env-browser[:outfilesuffix: .adoc]
7+
8+ We're happy to announce a new release of ClojureScript. If you're an
9+ existing user of ClojureScript please read over the following release
10+ notes carefully.
11+
12+ ## Async Functions
13+
14+ Now that ClojureScript targets
15+ https://clojurescript.org/news/2025-11-24[ECMAScript 2016] we can
16+ carefully choose new areas of enhanced interop. Starting with this
17+ release hinting a function as `^:async` will make ClojureScript
18+ compiler emit
19+ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function[JavaScript
20+ async functions]:
21+
22+ [source,clojure]
23+ ```
24+ (defn ^:async foo [n]
25+ (let [x (await (Promise/resolve 10))
26+ y (let [y (await (Promise/resolve 20))]
27+ (inc y))
28+ ;; not async
29+
30+ (+ n x y (f))))
31+ ```
32+
33+ This also works for tests:
34+
35+ [source,clojure]
36+ ```
37+ (deftest ^:async defn-test
38+ (try
39+ (let [v (await (foo 10))]
40+ (is (= 61 v)))
41+ (let [v (await (apply foo [10]))]
42+ (is (= 61 v)))
43+ (catch :default _ (is false))))
44+ ```
45+
46+ In the last Clojure survey, support for async functions dominated the
47+ list of desired enhancements for JavaScript interop. This enhancement
48+ greatly simplifies interacting with modern Browser APIs and popular
49+ libraries, eliminating the need for additional dependencies in the
50+ most typical scenarios.
51+
52+ For a complete list of fixes, changes, and enhancements to
53+ ClojureScript see
54+ https://github.com/clojure/clojurescript/blob/master/changes.md#1.12.144[here]
55+
56+ ## Contributors
57+
58+ Thanks to all of the community members who contributed to ClojureScript 1.12.134
59+
60+ * Michiel Borkent
You can’t perform that action at this time.
0 commit comments