Dec 5, 2014 by David Nolen on Google Groups

Feedback welcome!


  • forcing source maps to load for dynamic js reloads
  • All ISeqable types are now ES6 iterable
  • CLJS-863: Invalid arity error when calling 0-arity multimethod
  • CLJS-622: better error reporting for zero arity protocol methods
  • CLJS-506: expose more Closure minification knobs


  • CLJS-807: Emitter cannot emit BigInt or BigDecimal
  • CLJS-749: Ignore .repl-* given that CLJS version is appended by default.
  • CLJS-749: Append CLJS version to browser repl-env
  • CLJS-749: clojurescript-version is unbound return empty string
  • implement INamed for multi-method
  • revert CLJS-801
  • CLJS-888: Omit redundant {} around emitted recur
  • CLJS-888: Better placement of newlines in emitter
  • Join preambles with newline line to catch cases with files without newlines.
  • add js-in interop macro
  • Add nthrest
  • CLJS-510: Throw error when :output-wrapper and :optimizations :whitespace combined
  • CLJS-875: bump tools.reader dep to 0.8.10
  • CLJS-879: add update from Clojure 1.7
  • CLJS-857: change deftype/defrecord special forms to include their inline methods decls


  • CLJS-885: relax type inference around numbers
  • fix var resolution bug pointed out by Brandon Bloom
  • CLJS-853: propagate read-time metadata on fn and reify forms at runtime
  • CLJS-716: support hashing of JavaScript dates
  • CLJS-814: clojure.string/reverse breaks surrogate pairs
  • Recursively check IEncodeClojure in js->clj
  • CLJS-873: non-higher-order calls to array-map should return PAMs
  • CLJS-881: check for duplicate keys in array-map
  • select-keys did not preserve metadata