Cherry: Experimental ClojureScript to ES6 module compiler
- Accept plain
awaitas a special form, in anticipation of CLJS next. The legacyjs-awaitandjs/awaitspellings continue to work as aliases for now and may be deprecated in a future version. - Multiple
:require-macrosclauses with:refernow properly accumulate instead of overwriting each other - Add
cherry.testwithclojure.test-compatible testing API:deftest,is,testing,are,use-fixtures,async,run-tests(no-args defaults to current ns; also accepts quoted ns symbols). Macros are compiler built-ins (shared with squint) — no:require-macrosplumbing needed in user code. Per-namespace fixtures, counter isolation perrun-testscall,^:asynctest support, and(async done body)form for tests that resolve whendoneis called.
- Fix
cherry compileCLI command not receiving file arguments - Bump shadow-cljs to
3.3.4
- Fix #163: Add assert to macros (@willcohen)
- Fix #165: Fix ClojureScript protocol dispatch functions (@willcohen)
- Fix #167: Protocol dispatch functions inside IIFEs; bump squint accordingly
- Fix #169: fix
extend-typeonObject - Fix #171: Add
satisfies?macro (@willcohen)
- Bump squint compiler common component and standard library
- Bump other deps
- Optimize
=,str,not=
- Support
:macrosoption +:referso you can use unqualified macros using compiler state (seemacro-state-test)
- Bump squint common compiler code, fixes bugs
- Fix #156:
not=, used incorrectly inlined version of squint
- Fix #154:
cherry.embed/eval-form
- #151: Bump squint compiler common which fixes several issues, among which pragma support
- Add
cljs.pprint/pprint
- Add
add-tap
- Bump squint compiler common which brings in new
#htmlid and class shortcuts + additional features and optimizations, such as an optimization foraset
- Fix referring to vars in other namespaces globally
- Allow
defclassto be referenced through other macros, e.g. ascherry.core/defclass
- Fix emitting keyword in HTML
- #138: Support
#htmlliterals, ported from squint
- #135: Fix UMD build
- Fix #130: fix predefined
:aliasesfor cherry.embed - Support
IDeref,ISwap,IResetindeftype
- #127: fix duplicate
cherry-cljsproperty inpackage.jsonwhich caused issues with some bundlers - Bump squint common compiler code
- Support
clojure.set - Support
bit-shift-leftand more - #119: Add a
bbtask for serving the playground
- Support
coercive-booleanetc
- Playground improvements
- Fix varargs, allow
Mathto be used unqualified
- Alas, the previous build didn't pick up the added vars
- Add Clojure 1.11 functions like
parse-long, etc (notice how the version numbers align!)
- Catch up with newest squint common compiler enhancements
- Support
js-await(rather thanjs/await) - Update playground!
- Fix reading
:cljsbranches from.cljcfiles
- Bump shared compiler code with squint, optimizes truthiness checks and fixes
andandorwrt/ truthiness
- Fix overriding core vars
- Add
clojure.stringandclojure.walk
- Support
defclassandjs-template, same as squint. See squint docs.
- #101: include
lib/cherry.umd.jsfallback for Firefox web worker
- Adjust core package in standard import
- Support
cherry.embednamespace to embed cherry into a CLJS/shadow app. See docs. - Many other small fixes
- #78: fix macro call with more than 20 arguments
- #79: fix issue with advanced compilation and
_EQ_symbol
- #78: fix macro call with more than 20 arguments
- #79: fix (workaround) issue with advanced compilation and
_EQ_symbol
- #71: support alias with dashes
- #77: support async/await in variadic function s
- #67: support namespaced components in JSX
- Fix rendering of number attributes in JSX