News

Announcing Scala.js 1.0.0-M1

Jul 3, 2017

We are very excited to announce the first milestone of Scala.js 1.0.0, aka 1.0.0-M1!

This development release is mostly intended for testing purposes, and as a synchronization point with library authors so that they can start upgrading in preparation for the final release.

As the change in “major” version number witnesses, this release is not binary compatible with 0.6.x. Libraries need to be recompiled and republished using this milestone to be compatible.

Moreover, this release is not entirely source compatible with 0.6.x either. We expect, however, that further milestones for 1.0.0 will stay backward source compatible with this first milestone.

Read more

Announcing Scala.js 0.6.18

Jun 28, 2017

We are pleased to announce the release of Scala.js 0.6.18!

This release is mostly a bug-fix release, but it also brings one new feature: the ability to recognize “standard” main methods (with args: Array[String]) in addition to js.JSApp objects.

Read on for more details.

Read more

Announcing Scala.js 0.6.17

Jun 4, 2017

We are excited to announce the release of Scala.js 0.6.17!

This release is mostly a bug-fix release, but it also brings a few new features.

One bug fix which we would like to highlight is #2943/#2827. The optimizer exposed a quadratic behavior which meant insanely long times of fastOptJS on some codebases, which we have now fixed. This was particularly true in test suites using ScalaTest.

The main new feature of this release is the ability for facade libraries to support both the traditional NoModule style, where JS libraries are exposed as global variables and accessed through @JSGlobal, and the CommonJSModule style, where JS libraries are imported through @JSImport.

Read on for more details.

Read more

Announcing Scala.js 0.6.16

Apr 29, 2017

We are excited to announce the release of Scala.js 0.6.16!

This release is mostly a bug-fix release. It also adds support for jsdom v10.x (which contains breaking changes wrt. jsdom v9.x) and Scala 2.13.0-M1.

Read on for more details.

Read more

Announcing Scala.js 0.6.15

Mar 21, 2017

We are excited to announce the release of Scala.js 0.6.15!

This release was focused on preparations for Scala.js 1.0.0. It notably contains better replacements for some features that we were not 100% happy with, which are now deprecated and will be dropped in 1.0.0.

Thanks to @olafurpg and his great tool scalafix, you can automatically migrate your codebase for the first and most intrusive of those deprecations. See below for details.

Scala.js 0.6.15 also comes with a set of exciting new features, including several awesome JavaScript interoperability features:

  • Use @JSExportStatic to define static members on Scala.js-defined JS classes.
  • @JSExportTopLevel is not restricted to methods anymore: it can be used on fields and top-level classes/objects.
  • The standard library now contains the API for ECMAScript 2015 symbols (as js.Symbol) and iterables/iterators (as js.Iterable and js.Iterator).
  • In JS types (both native and non-native), @JSName can be given a reference to a js.Symbol (instead of a constant string) to declare members whose “name” is a JavaScript symbol.

Finally, the sbt plugin also features a replacement for the “launcher” files, so that the call to the main method of your program can be included directly inside the main -fastopt.js.

Read on for more details.

Read more

Announcing Scala.js 0.6.14

Dec 21, 2016

We are excited to announce the release of Scala.js 0.6.14!

This release features a few language enhancements for interoperability. Among others, it allows to export top-level functions, and provides language support for JavaScript “configuration objects”.

Read more