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.ECMAScript2015

or

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 @EnableReflectiveInstantiation class inside a lambda in Scala 2.11 and 2.10
  • #3267 Linking error with @tailrec method 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.