Improvements and features
- 64-bit integer arithmetic and
math/big
~10x performance improvement by @nevkontakte in #1082 - Support environments without process.argv by @tsavola in #1068
- Source maps: preserve position information for top-level variable declarations. by @nevkontakte in #1070
- Improve temporary file management in
gopherjs test
. by @nevkontakte in #1081
Bug fixes
- Fix two classes of "unreachable code" warnings in Firefox. by @nevkontakte in #1071
- sync/atomic: remove an unused type of code. by @nevkontakte in #1075
- Prevent event loop starvation by always scheduled goroutines. by @nevkontakte in #1079
- Fix two cases of incorrect stack unwinding after panic recovery. by @nevkontakte in #1084
New Contributors
- @tsavola made their first contribution in #1068
- @danielgtaylor made their first contribution in #1077
Full Changelog: 1.17.0+go1.17.1...1.17.1+go1.17.3
Go 1.17 is now supported by GopherJS!! See the upstream Go 1.17 release notes for details. Noteable exceptions/differences with GopherJS:
- The GopherJS toolchain has not been updated to support lazy module loading or version suffixes for
gopherjs run
- Slice to array conversion is not supported for subslices of non-linear types (https://github.com/gopherjs/gopherjs/blob/daae65060a401d321b01fef0ae7fb535230f239c/compiler/prelude/prelude.go#L178-L183)
- Outstanding compiler bugs found during the 1.17 release cycle:
This release is tested against the Go 1.17.1 standard library, although all versions of Go 1.17.x are expected to work.
- Go Modules are fully supported by GopherJS!
build
,test
andserve
and other subcommands now work outside of GOPATH!🎉 - Release tested against Go 1.16.7 and Node 12.
- It is now easier to install NodeJS dependencies for GopherJS. Simply run
npm install
in the root of the GopherJS working copy and all dependencies will be installed undernode_modules
. - Several minor fixes in the GopherJS runtime, compiler and
syscall/js
. Thanks to @benma for fixing an issue when using GopherJS within a Chrome extension!
- Tested with Go 1.16.5
- Fully up to date support for the 'syscall/js' including
IsNull
,IsUndefined
,IsNaN
,Delete
andEqual
methods and correct panic types. - Further fixes to the
syscall
package under MacOS/M1 (GOOS=darwin GOARCH=arm64
). - Fixed incorrect deferral handling triggered by JS exceptions.
- Tested with the latest go 1.16.4.
- Fixed build errors in the
syscall
package underGOOS=darwin
. - Fixed a panic in
golang.org/x/crypto/chacha20poly1305
(although see a caveat).
syscall/js
: Added support forCopyBytesToGo()
andCopyBytesToJS
(thanks @paralin and @findleyr).- Compiler: Fixed panics caused by untyped nils.
- Compiler: Print additional debugging information if a panic happens during compilation.
- Development:
GOPHERJS_SKIP_VERSION_CHECK
allows to use GopherJS with any Go version (no guarantees it'll work well!😉 )
This tag exists only to document the state of the Go 1.13 WIP branch, which was never released. Ultimately, we jumped to 1.16 for the next release.
ci: upgrade to Go 1.11.5 (#903) So that we can then see the true diff that the Go 1.12 changes in https://github.com/gopherjs/gopherjs/pull/900 will introduce.