Announcing Scala.js 0.6.23
May 22, 2018.
We are pleased to announce the release of Scala.js 0.6.23!
This release is almost exclusively a bug-fix release. It also adds support for Scala 2.13.0-M4 and its new collections, thanks to the hard work of @julienrf.
Read on for more details.
Getting started
If you are new to Scala.js, head over to the tutorial.
Release notes
If upgrading from Scala.js 0.6.14 or earlier, make sure to read the release notes of 0.6.15, which contain important migration information.
As a minor release, 0.6.23 is backward binary compatible with previous releases in the 0.6.x series. Libraries compiled with earlier versions can be used with 0.6.23 without change. 0.6.23 is also forward binary compatible with 0.6.{17-22}, but not with earlier releases: libraries compiled with 0.6.23 cannot be used by projects using 0.6.{0-16}.
There is one source breaking change if you use .scala files for your sbt build.
Please report any issues on GitHub.
Breaking changes
Usages of %%% in .scala files of an sbt build (under project/) need a new import:
import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._For .sbt files, this import is automatically added, so nothing changes.
Deprecations
Built-in crossProject
The built-in crossProject feature has been deprecated.
You should use sbt-crossproject instead.
Please follow the migration instructions in its readme.
withOutputMode
The notion of OutputMode has been replaced by that of ESFeatures.
Instead of
import org.scalajs.core.tools.linker.backend.OutputMode
scalaJSOutputMode := OutputMode.ECMAScript2015or
import org.scalajs.core.tools.linker.standard._
scalaJSLinkerConfig ~= { _.withOutputMode(OutputMode.ECMAScript2015) }you should now use
// no import needed
scalaJSLinkerConfig ~= { _.withESFeatures(_.withUseECMAScript2015(true)) }New features
JDK APIs
The following JDK API methods have been added:
java.lang.Character.isSurrogate()
Bug fixes
Among others, the following bugs have been fixed in 0.6.23:
- #3227 Linking error for an
@EnableReflectiveInstantiationclass inside a lambda in Scala 2.11 and 2.10 - #3267 Linking error with
@tailrecmethod inside a trait with a self-type, on Scala 2.12+ - #3285 Run-time error in Scala.js-defined classes with multiple parameter lists and default args
You can find the full list on GitHub.