Today we are happy to announce the release of GopherJS 1.9-1. You can get it on GitHub as usual. It adds support for the recent release of Go 1.9. There have been many minor improvements since GopherJS 1.8-1.

The support for Go 1.9 means that GopherJS 1.9-1 requires Go 1.9 and no longer works with Go 1.8. It’s highly recommended to be using the latest version of Go and GopherJS, but if you cannot upgrade from Go 1.8 right away, you should continue to use GopherJS on the go1.8 branch.

Installation or upgrade steps remain the same as before. To get the latest official stable release of GopherJS, please follow the instructions in the README. You can confirm that you have the right version if gopherjs version prints GopherJS 1.9-1 .

GopherJS 1.9-1 continues to support nearly everything of the Go language specification, including goroutines. Please consult the package compatibility table to see which standard library packages are supported. Everything from the previous Go 1.8 version is still supported, as are many of the additions that are new to Go 1.9. If you run into any issues or discrepancies with what the compatibility table says, please create an issue report.

Some of the changes that have gone into the new release include:

Support for type alias declarations. E.g., type T1 = T2 .

. Support for new math/bits package in the standard library.

package in the standard library. Fixed evaluation order of type conversions (#649).

Fixed externalization of empty typed arrays (#597).

In net/http package, improved error messages on failed requests when using Fetch (#647), and improved handling of requests with empty bodies when using XMLHttpRequest (#600).

package, improved error messages on failed requests when using Fetch (#647), and improved handling of requests with empty bodies when using XMLHttpRequest (#600). Optimized ASCII detection during string internalization/externalization (#628).

Fixed bug in gopherjs build staleness calculation that was causing it to sometimes use stale archives and produce incorrect build output (#559).

build staleness calculation that was causing it to sometimes use stale archives and produce incorrect build output (#559). Improved support for import path patterns and relative import paths in the gopherjs command (#302).

command (#302). Prevent gopherjs command from misbehaving unnecessarily when GOARCH environment variable is set to an unexpected value (#594 and #601).

command from misbehaving unnecessarily when environment variable is set to an unexpected value (#594 and #601). Support for gopherjs test --count flag. It behaves like the equivalent flag in go test command.

flag. It behaves like the equivalent flag in command. Improved example execution allows additional examples to run without deadlocking (#529).

Improved determinism in code generation, removing a difference in output when compiling the same program.

Thank you to all contributors who have helped with this release, whether that’s by improving documentation, investigating and resolving issues, contributing code and maintaining bindings to browser APIs. It is greatly appreciated. We welcome all help; if you’d like to get involved, see the community section. If you have a good experience with GopherJS, tell your fellow gophers about it and share your GopherJS-powered projects!

If you’d like to get started with GopherJS, here are some next steps you can take:

Try it right now in your browser with the GopherJS Playground.

Use the gopherjs serve command and execute your favorite Go package in the browser.

command and execute your favorite Go package in the browser. Join the #gopherjs channel on Gophers Slack for GopherJS-related chat.

Happy surfing with Go 1.9 and GopherJS 1.9-1!