Oct 3, 2017 by David Nolen on Google Groups

This release contains many bug fixes and addresses feedback from the 1.9.908 release. Important changes include parity with Clojure 1.9.0-beta1 and an updated Google Closure Compiler dependency. The later one in particular now means that ClojureScript has a dependency on JDK 8.

As always feedback welcome!


  • CLJS-2300: Delegate clojure.string/capitalize to goog.string/capitalize
  • CLJS-2374: Print js/Infinity, js/-Infinity, js/NaN using new reader literals
  • bump tools.reader (1.1.0)
  • CLJS-2372: update hash to use the new infinity literals
  • CLJS-2364: Bump Closure Compiler to the Sep 2017 version
  • CLJS-2340: Have js-keys delegate directly to good.object/getKeys
  • CLJS-2338: Support renamePrefix{Namespace} closure compiler option


  • CLJS-1576: fix source-map string encoding by applying encodeURIComponent and fixing string/replace call
  • CLJS-2294: Always use opts with implicit opts added
  • CLJS-2166: Add uri? predicate
  • CLJS-2368: Self-host: Never compile macro namespaces with :optimize-constants true
  • CLJS-2367: Self-host: :def-emits-var leaks into loaded namespace processing
  • CLJS-2352: Emit valid JS for NaN etc. even when used w/ CLJ >= 1.9.0-alpha20
  • CLJS-2339: Significant code reload slowdown with :npm-deps
  • CLJS-2361: Self-host: circular dependency detection doesn't handle REPL self-require
  • CLJS-2356: Self-host: circular dependency detection is not correct
  • CLJS-2354: Self-host: compile-str doesn't handle clojure -> cljs aliasing
  • CLJS-2353: use portable node-module-dep? function in analyze-deps
  • CLJS-2345: escape paths emitted as args to cljs.core.load_file
  • CLJS-2349: Port reset-vals! and swap-vals! over from Clojure
  • CLJS-2336: Call alength once in areduce and amap
  • CLJS-2335: Avoid alength on strings
  • CLJS-2334: Also gather dependencies from foreign-libs that are modules
  • CLJS-2333: module-deps.js doesn't correctly compute main if aliased in browser field
  • CLJS-2332: module_deps.js doesn't process export from correctly
  • CLJS-2330: Don't set "browser" field for Closure if target is :nodejs
  • CLJS-2326: Indexing node_modules can't find main when it doesn't have an extension
  • CLJS-2328: Args are not provided to main-cli-fn with optimizations advanced
  • CLJS-2327: module_deps.js doesn't know about browser field advanced usage