wasm-bindgen/CHANGELOG.md

250 lines
7.5 KiB
Markdown
Raw Normal View History

2018-06-19 21:55:04 +03:00
# `wasm-bindgen` Change Log
--------------------------------------------------------------------------------
2018-08-14 00:25:05 +03:00
## Unreleased
Released YYYY-MM-DD.
### Added
* TODO (or remove section if none)
### Changed
* TODO (or remove section if none)
### Deprecated
* TODO (or remove section if none)
### Removed
* TODO (or remove section if none)
### Fixed
* TODO (or remove section if none)
### Security
* TODO (or remove section if none)
--------------------------------------------------------------------------------
2018-08-27 23:49:34 +03:00
2018-09-06 21:35:10 +03:00
## 0.2.20
Released 2018-09-06
### Added
* All of `wasm-bindgen` is configured to compile on stable Rust as of the
upcoming 1.30.0 release, scheduled for October 25, 2018.
* The underlying `JsValue` of a `Closure<T>` type can now be extracted at any
time.
* Initial and experimental support was added for modules that have shared memory
(use atomic instructions).
### Removed
* The `--wasm2asm` flag of `wasm2es6js` was removed because the `wasm2asm` tool
has been removed from upstream Binaryen. This is replaced with the new
`wasm2js` tool from Binaryen.
### Fixed
* The "schema" version for wasm-bindgen now changes on all publishes, meaning we
can't forget to update it. This means that the crate version and CLI version
must exactly match.
* The `wasm-bindgen` crate now has a `links` key which forbids multiple versions
of `wasm-bindgen` from being linked into a dependency graph, fixing obscure
linking errors with a more first-class error message.
* Binary releases for Windows has been fixed.
--------------------------------------------------------------------------------
2018-08-27 23:49:34 +03:00
## 0.2.19 (and 0.2.18)
Released 2018-08-27.
### Added
* Added bindings to `js-sys` for some `WebAssembly` types.
* Added bindings to `js-sys` for some `Intl` types.
* Added bindings to `js-sys` for some `String` methods.
* Added an example of using the WebAudio APIs.
* Added an example of using the `fetch` API.
* Added more `extends` annotations for types in `js-sys`.
* Experimental support for `WeakRef` was added to automatically deallocate Rust
objects when gc'd.
* Added support for executing `wasm-bindgen` over modules that import their
memory.
* Added a global `memory()` function in the `wasm-bindgen` crate for accessing
the JS object that represent wasm's own memory.
### Removed
* Removed `AsMut` implementations for imported objects.
### Fixed
* Fixed the `constructor` and `catch` attributes combined on imported types.
* Fixed importing the same-named static in two modules.
--------------------------------------------------------------------------------
2018-08-14 00:25:05 +03:00
2018-08-17 09:36:42 +03:00
## 0.2.17
Released 2018-08-16.
### Added
* Greatly expanded documentation in the wasm-bindgen guide.
* Added bindings to `js-sys` for `Intl.DateTimeFormat`
* Added a number of `extends` attributes for types in `js-sys`
### Fixed
* Fixed compile on latest nightly with latest `proc-macro2`
* Fixed compilation in some scenarios on Windows with paths in `module` paths
--------------------------------------------------------------------------------
2018-08-14 00:25:05 +03:00
## 0.2.16
Released 2018-08-13.
### Added
* Added the `wasm_bindgen::JsCast` trait, as described in [RFC #2][rfc-2].
* Added [the `#[wasm_bindgen(extends = ...)]` attribute][extends-attr] to
describe inheritance relationships, as described in [RFC #2][rfc-2].
* Added support for receiving `Option<&T>` parameters from JavaScript in
exported Rust functions and methods.
* Added support for receiving `Option<u32>` and other option-wrapped scalars.
* Added reference documentation to the guide for every `#[wasm_bindgen]`
attribute and how it affects the generated bindings.
* Published the `wasm-bindgen-futures` crate for converting between JS
`Promise`s and Rust `Future`s.
### Changed
* Overhauled the guide's documentation on passing JS closures to Rust, and Rust
closures to JS.
* Overhauled the guide's documentation on using serde to serialize complex data
to `JsValue` and deserialize `JsValue`s back into complex data.
* Static methods are now always bound to their JS class, as is required for
`Promise`'s static methods.
### Removed
* Removed internal usage of `syn`'s `visit-mut` cargo feature, which should
result in faster build times.
### Fixed
* Various usage errors for the `#[wasm_bindgen]` proc-macro are now properly
reported with source span information, rather than `panic!()`s inside the
proc-macro.
* Fixed a bug where taking a struct by reference and returning a slice resulted
in lexical variable redeclaration errors in the generated JS glue. [#662][]
* The `#[wasm_bindgen(js_class = "....")]` attribute for binding methods to
renamed imported JS classes now properly works with constructors.
[rfc-2]: https://rustwasm.github.io/rfcs/002-wasm-bindgen-inheritance-casting.html
[extends-attr]: https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-js-imports/extends.html
[#662]: https://github.com/rustwasm/wasm-bindgen/pull/662
--------------------------------------------------------------------------------
2018-07-27 00:51:20 +03:00
## 0.2.15
Released 2018-07-26.
### Fixed
* Fixed `wasm-bindgen` CLI version mismatch checks that got broken in the last
point release.
--------------------------------------------------------------------------------
2018-07-25 19:46:45 +03:00
## 0.2.14
Released 2018-07-25.
### Fixed
* Fixed compilation errors on targets that use
Mach-O. [#545](https://github.com/rustwasm/wasm-bindgen/issues/545)
--------------------------------------------------------------------------------
## 0.2.13
2018-07-25 19:46:45 +03:00
Released 2018-07-22.
### Added
* Support the `#[wasm_bindgen(js_name = foo)]` attribute on exported functions
and methods to allow renaming an export to JS. This allows JS to call it by
one name and Rust to call it by another, for example using `camelCase` in JS
and `snake_case` in Rust
2018-07-22 07:10:47 +03:00
### Fixed
* Compilation with the latest nightly compiler has been fixed (nightlies on and
after 2018-07-21)
--------------------------------------------------------------------------------
## 0.2.12
2018-06-19 21:55:04 +03:00
2018-07-19 23:15:55 +03:00
Released 2018-07-19.
2018-06-19 21:55:04 +03:00
This release is mostly internal refactorings and minor improvements to the
existing crates and functionality, but the bigs news is an upcoming `js-sys` and
`web-sys` set of crates. The `js-sys` crate will expose [all global JS
bindings][js-all] and the `web-sys` crate will be generated from WebIDL to
expose all APIs browsers have. More info on this soon!
2018-06-19 21:55:04 +03:00
[js-all]: https://github.com/rustwasm/wasm-bindgen/issues/275
2018-06-19 21:55:04 +03:00
### Added
2018-06-19 21:55:04 +03:00
* Support for `Option<T>` was added where `T` can be a number of slices or
imported types.
* Comments in Rust are now preserved in generated JS bindings, as well as
comments being generated to indicate the types of arguments/return values.
* The online documentation has been reorganized [into a book][book].
* The generated JS is now formatted better by default for readability.
* A `--keep-debug` flag has been added to the CLI to retain debug sections by
default. This happens by default when `--debug` is passed.
2018-06-19 21:55:04 +03:00
[book]: https://rustwasm.github.io/wasm-bindgen/
2018-06-19 21:55:04 +03:00
### Fixed
* Compilation with the latest nightly compiler has been fixed (nightlies on and
after 2018-07-19)
* Declarations of an imported function in multiple crates have been fixed to not
conflict.
* Compilation with `#![deny(missing_docs)]` has been fixed.
2018-06-19 21:55:04 +03:00
--------------------------------------------------------------------------------
## 0.2.11
2018-07-19 23:15:55 +03:00
Released 2018-05-24.
2018-06-19 21:55:04 +03:00
--------------------------------------------------------------------------------
## 0.2.10
2018-07-19 23:15:55 +03:00
Released 2018-05-17.
2018-06-19 21:55:04 +03:00
--------------------------------------------------------------------------------
## 0.2.9
2018-07-19 23:15:55 +03:00
Released 2018-05-11.