Announcing Scala.js 0.5.6
Nov 19, 2014.
We are excited to announce the release of Scala.js 0.5.6!
This is a backport release from the upcoming 0.6.x branch and contains various minor bug fixes and enhancements.
To upgrade, change the version number in
project/plugins.sbt, as usual. Further, you will need to upgrade to sbt >= 0.13.6 since this release of Scala.js is published against sbt 0.13.6.
Scala.js 0.5.6 is binary compatible with Scala.js 0.5.5 and hence backward binary compatible with older releases of the 0.5.x branch.
Please report any issues on GitHub.
Changes in the 0.5.6 release
In Scala.js 0.6.x, putting
@JSExport on a class or an object will export it to its fully qualified name, rather than its simple name. To ease the transition to 0.6.x, Scala.js 0.5.6 will warn if an
@JSExport annotation without explicit name is put on a top level object or class. Otherwise, such code would silently break when migrating to 0.6.x.
To silence the warning, simply specify the desired name explicilty.
@JSExportDescendentObjects, this annotation causes all constructors of extending classes to be exported under the fully qualified name of the class.
The following features of the Java library have been added:
Scala.js now supports the standard charset conversions that every JRE supports. You can now pass instances of
Charset to methods that convert bytes to characters and vice versa.
Note that you should avoid using
Charset.forName (and methods that take charsets as strings in general), since they will make all
Charset implementations reachable and hence explode your code size. If you compile on JDK6 (which does not have
StandardCharsets), you may use
scala.scalajs.niocharset.StandardCharsets to retrieve an instance of the desired
This also allowed to implement
Amongst others, the following bugs have been fixed since 0.5.5:
- #1140 fullOptJs and fastOptJs hang when running on JDK 8
- #1148 Compiler crash with Scoverage
- #1171 String.split / regex discrepancy
- #1191 Assign multiple variables from a case class with
@JSExportAllcauses compilation error
See the full list on GitHub.