| # `wasm-bindgen` Change Log |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.81 |
| |
| Released 2022-06-14. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.80...0.2.81) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.80 |
| |
| Released 2022-04-04. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.79...0.2.80) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.79 |
| |
| Released 2022-01-19. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.78...0.2.79) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.78 |
| |
| Released 2021-09-15. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.77...0.2.78) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.77 |
| |
| Released 2021-09-08. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.76...0.2.77) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.76 |
| |
| Released 2021-08-19. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.75...0.2.76) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.75 |
| |
| Released 2021-08-02. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.74...0.2.75) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.74 |
| |
| Released 2021-05-10. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.73...0.2.74) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.73 |
| |
| Released 2021-03-29. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.72...0.2.73) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.72 |
| |
| Released 2021-03-18. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.71...0.2.72) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.71 |
| |
| Released 2021-02-26. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.70...0.2.71) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.70 |
| |
| Released 2021-01-25. |
| |
| [changes](https://github.com/rustwasm/wasm-bindgen/compare/0.2.69...0.2.70) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.69 |
| |
| Released 2020-11-30. |
| |
| ### Added |
| |
| * Unstable bindings for WebBluetooth have been added. |
| [#2311](https://github.com/rustwasm/wasm-bindgen/pull/2311) |
| |
| * Unstable bindings for WebUSB have been added. |
| [#2345](https://github.com/rustwasm/wasm-bindgen/pull/2345) |
| |
| * Renaming a struct field with `js_name` is now supported. |
| [#2360](https://github.com/rustwasm/wasm-bindgen/pull/2360) |
| |
| * The WebGPU WebIDL has been updated. |
| [#2353](https://github.com/rustwasm/wasm-bindgen/pull/2353) |
| |
| ### Fixed |
| |
| * The ImageCapture APIs of web-sys have been moved to unstable and were fixed. |
| [#2348](https://github.com/rustwasm/wasm-bindgen/pull/2348) |
| |
| * Bindings for `waitAsync` have been updated. |
| [#2362](https://github.com/rustwasm/wasm-bindgen/pull/2362) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.68 |
| |
| Released 2020-09-08. |
| |
| ### Added |
| |
| * Add userVisibleOnly property to PushSubscriptionOptionsInit. |
| [#2288](https://github.com/rustwasm/wasm-bindgen/pull/2288) |
| |
| ### Fixed |
| |
| * TypeScript files now import `*.wasm` instead of bare files. |
| [#2283](https://github.com/rustwasm/wasm-bindgen/pull/2283) |
| |
| * Usage of `externref` now appropriately resizes the table by using 2x the |
| previous capacity, fixing a performance issue with lots of externref objects. |
| [#2294](https://github.com/rustwasm/wasm-bindgen/pull/2294) |
| |
| * Compatibility with the latest Firefox WebDriver has been fixed. |
| [#2301](https://github.com/rustwasm/wasm-bindgen/pull/2301) |
| |
| * Non deterministic output with closures has been fixed. |
| [#2304](https://github.com/rustwasm/wasm-bindgen/pull/2304) |
| |
| ### Updated |
| |
| * The WebGPU WebIDL was updated. |
| [#2267](https://github.com/rustwasm/wasm-bindgen/pull/2267) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.67 |
| |
| Released 2020-07-28. |
| |
| ### Added |
| |
| * A `--reference-types` flag was added to the CLI. |
| [#2257](https://github.com/rustwasm/wasm-bindgen/pull/2257) |
| |
| ### Fixed |
| |
| * Breakage with `Closure::forget` in 0.2.66 was fixed. |
| [#2258](https://github.com/rustwasm/wasm-bindgen/pull/2258) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.66 |
| |
| Released 2020-07-28. |
| |
| ### Added |
| |
| * Reverse mappings from value to name are now available in JS bindings of enums. |
| [#2240](https://github.com/rustwasm/wasm-bindgen/pull/2240) |
| |
| ### Fixed |
| |
| * Functions using a return pointer in threaded programs now correctly load and |
| store return values in a way that doesn't interfere with other threads. |
| [#2249](https://github.com/rustwasm/wasm-bindgen/pull/2249) |
| |
| * Support for weak references has been updated and a `--weak-refs` flag is now |
| available in the CLI for enabling weak references. |
| [#2248](https://github.com/rustwasm/wasm-bindgen/pull/2248) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.65 |
| |
| Released 2020-07-15. |
| |
| ### Added |
| |
| * Functions from JS can now be natively imported as `async` and will use |
| promises under the hood. |
| [#2196](https://github.com/rustwasm/wasm-bindgen/pull/2196) |
| |
| ### Changed |
| |
| * Encoding for the reference types proposal has been updated to the latest |
| version of the spec. |
| [#2234](https://github.com/rustwasm/wasm-bindgen/pull/2234) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.64 |
| |
| Released 2020-06-29. |
| |
| ### Added |
| |
| * Nested namespaces for imports can now be specified. |
| [#2105](https://github.com/rustwasm/wasm-bindgen/pull/2105) |
| |
| * A `deno` target has been added. |
| [#2176](https://github.com/rustwasm/wasm-bindgen/pull/2176) |
| |
| ### Fixed |
| |
| * Getters/setters that consume the original object have been fixed to invalidate |
| the object correctly. |
| [#2172](https://github.com/rustwasm/wasm-bindgen/pull/2172) |
| |
| * Compatibility with nightly threading in LLVM has been fixed. |
| [#2183](https://github.com/rustwasm/wasm-bindgen/pull/2183) |
| |
| * Trailing space in generated doc comments is now removed. |
| [#2210](https://github.com/rustwasm/wasm-bindgen/pull/2210) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.63 |
| |
| Released 2020-05-27. |
| |
| ### Added |
| |
| * A new example about using WebRTC has been added. |
| [#2131](https://github.com/rustwasm/wasm-bindgen/pull/2131) |
| |
| * The `Blob.stream()` method has been added. |
| [#2140](https://github.com/rustwasm/wasm-bindgen/pull/2140) |
| [#2142](https://github.com/rustwasm/wasm-bindgen/pull/2142) |
| |
| ### Changed |
| |
| * The encoding and implementation of WebAssembly reference types has been sync'd |
| with the latest upstream specification. |
| [#2125](https://github.com/rustwasm/wasm-bindgen/pull/2125) |
| |
| ### Fixed |
| |
| * Test functions names will no longer collide with test intrinsic names. |
| [#2123](https://github.com/rustwasm/wasm-bindgen/pull/2123) |
| |
| * Fixed warnings with `#[must_use]` types in generated code. |
| [#2144](https://github.com/rustwasm/wasm-bindgen/pull/2144) |
| |
| * Fixed compatibility with latest Rust nightlies. |
| [#2159](https://github.com/rustwasm/wasm-bindgen/pull/2159) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.62 |
| |
| Released 2020-05-01. |
| |
| ### Fixed |
| |
| * Usage of `require` has been fixed with Webpack 5. |
| [#2115](https://github.com/rustwasm/wasm-bindgen/pull/2115) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.61 |
| |
| Released 2020-04-29. |
| |
| ### Added |
| |
| * Exported Rust `enum` types can now be renamed with `js_name`. |
| [#2071](https://github.com/rustwasm/wasm-bindgen/pull/2071) |
| |
| * More comments are copied to JS/TS files, and comments should no longer |
| accidentally have escape sequences in them. |
| [#2070](https://github.com/rustwasm/wasm-bindgen/pull/2070) |
| |
| * Experimental bindings for the Clipboard browser APIs have been added. |
| [#2100](https://github.com/rustwasm/wasm-bindgen/pull/2100) |
| |
| ### Changed |
| |
| * WebGPU bindings have been updated. |
| [#2080](https://github.com/rustwasm/wasm-bindgen/pull/2080) |
| |
| * `setBindGroup` methods for WebIDL now take immutable slices instead of mutable |
| slices. |
| [#2087](https://github.com/rustwasm/wasm-bindgen/pull/2087) |
| |
| * JS code generation for `catch` functions has been improved. |
| [#2098](https://github.com/rustwasm/wasm-bindgen/pull/2098) |
| |
| * Usage of NPM dependencies with the `web` target is no longer an error. |
| [#2103](https://github.com/rustwasm/wasm-bindgen/pull/2103) |
| |
| ### Fixed |
| |
| * Combining `js_name` with `getter` and `setter` has now been fixed. |
| [#2074](https://github.com/rustwasm/wasm-bindgen/pull/2074) |
| |
| * Importing global names which conflict with other namespaces should now work |
| correctly. |
| [#2057](https://github.com/rustwasm/wasm-bindgen/pull/2057) |
| |
| * Acquiring the global JS object has been fixed for Firefox extension content |
| scripts. |
| [#2099](https://github.com/rustwasm/wasm-bindgen/pull/2099) |
| |
| * The output of `wasm-bindgen` is now compatible with Webpack 5 and the updated |
| version of the wasm ESM integration specification. |
| [#2110](https://github.com/rustwasm/wasm-bindgen/pull/2099) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.60 |
| |
| Released 2020-03-25. |
| |
| ### Added |
| |
| * The `js_sys` types are now more accurately reflected in TypeScript. |
| [#2028](https://github.com/rustwasm/wasm-bindgen/pull/2028) |
| |
| * The timeout in `wasm-bindgen-test-runner`'s timeout can now be configured via |
| `WASM_BINDGEN_TEST_TIMEOUT`. |
| [#2036](https://github.com/rustwasm/wasm-bindgen/pull/2036) |
| |
| * WebIDL for WebXR has been added. |
| [#2000](https://github.com/rustwasm/wasm-bindgen/pull/2000) |
| |
| ### Changed |
| |
| * The WebIDL for WebGPU has been updated. |
| [#2037](https://github.com/rustwasm/wasm-bindgen/pull/2037) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.59 |
| |
| Released 2020-03-03. |
| |
| ### Added |
| |
| * The `js_sys::Number` type now has a number of JS-number associated constants |
| on it now. |
| [#1965](https://github.com/rustwasm/wasm-bindgen/pull/1965) |
| |
| * The `getTransform` method on `CanvasRenderingContext2D` has been added. |
| [#1966](https://github.com/rustwasm/wasm-bindgen/pull/1966) |
| |
| * Initial experimental support was added for electron targets with a new |
| `--omit-imports` flag. |
| [#1958](https://github.com/rustwasm/wasm-bindgen/pull/1958) |
| |
| * Optional struct fields are now reflected idiomatically in TypeScript. |
| [#1990](https://github.com/rustwasm/wasm-bindgen/pull/1990) |
| |
| * Typed arrays in `js_sys` now have `get_index` and `set_index` methods. |
| [#2001](https://github.com/rustwasm/wasm-bindgen/pull/2001) |
| |
| * The `web_sys::Blob` type has been updated with `arrayBuffer` and `text` |
| methods. |
| [#2008](https://github.com/rustwasm/wasm-bindgen/pull/2008) |
| |
| * Support for unstable browser interfaces has now been added. By compiling |
| `web_sys` with `--cfg web_sys_unstable_apis` (typically via `RUSTFLAGS`) |
| you'll be able to access all bound WebIDL functions, even those like GPU |
| support on the web, which has now also had its WebIDL updated. |
| [#1997](https://github.com/rustwasm/wasm-bindgen/pull/1997) |
| |
| * The compile time for `web_sys` has been massively reduced by pre-generating |
| Rust code from WebIDL. It is also readable now since it generates |
| `#[wasm_bindgen]` annotations instead of expanded code. |
| [#2012](https://github.com/rustwasm/wasm-bindgen/pull/2012) |
| |
| * A new `typescript_type` attribute can be used to specify the TypeScript type |
| for an `extern` type. [#2012](https://github.com/rustwasm/wasm-bindgen/pull/2012) |
| |
| * It is now possible to use string values with `#[wasm_bindgen]` `enum`s. |
| [#2012](https://github.com/rustwasm/wasm-bindgen/pull/2012) |
| |
| * A new `skip_tyepscript` attribute is recognized to skip generating TypeScript |
| bindings for a function or type. |
| [#2016](https://github.com/rustwasm/wasm-bindgen/pull/2016) |
| |
| ### Changed |
| |
| * More `uniformMatrix*` bindings now are whitelisted take shared slice instead |
| of a mutable slice. |
| [#1957](https://github.com/rustwasm/wasm-bindgen/pull/1957) |
| |
| * Non-`dependency` keys in `package.json` are now ignored instead of error'd |
| about. |
| [#1969](https://github.com/rustwasm/wasm-bindgen/pull/1969) |
| |
| * WebGPU has been removed from `web_sys` since it was outdated and didn't work |
| anywhere anyway. |
| [#1972](https://github.com/rustwasm/wasm-bindgen/pull/1972) |
| |
| * The JS heap of objects managed by wasm-bindgen has had its definition |
| tightended up a bit. |
| [#1987](https://github.com/rustwasm/wasm-bindgen/pull/1987) |
| |
| * The `self` identifier is no longe used on the `no-modules` target, making it a |
| bit more flexible in more environments. |
| [#1995](https://github.com/rustwasm/wasm-bindgen/pull/1995) |
| |
| * The wasm-loading logic is now more flexible and can take promises as well. |
| [#1996](https://github.com/rustwasm/wasm-bindgen/pull/1996) |
| |
| * JS glue for closures is now deduplicated. |
| [#2002](https://github.com/rustwasm/wasm-bindgen/pull/2002) |
| |
| * The `web_sys` crate now emits more accurate TypeScript definitions using named |
| types instead of `any` everywhere. |
| [#1998](https://github.com/rustwasm/wasm-bindgen/pull/1998) |
| |
| * The `send_with_u8_array` methods in `web_sys` are whitelisted to take shared |
| slices instead of mutable slices. |
| [#2015](https://github.com/rustwasm/wasm-bindgen/pull/2015) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.58 |
| |
| Released 2020-01-07. |
| |
| ### Added |
| |
| * When using the `no-modules` output type the initialization path for the wasm |
| file is now optional if it can be inferred from the current JS script. |
| [#1938](https://github.com/rustwasm/wasm-bindgen/pull/1938) |
| |
| ### Fixed |
| |
| * TypeScript for struct methods that have floats has been fixed. |
| [#1945](https://github.com/rustwasm/wasm-bindgen/pull/1945) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.57 |
| |
| Released 2020-01-06. |
| |
| ### Fixed |
| |
| * The `js_sys::Promise` type is now marked as `#[must_use]` |
| [#1927](https://github.com/rustwasm/wasm-bindgen/pull/1927) |
| |
| * Duplicate imports of the same name are now handled correctly again. |
| [#1942](https://github.com/rustwasm/wasm-bindgen/pull/1942) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.56 |
| |
| Released 2019-12-20. |
| |
| ### Added |
| |
| * Added a `#[wasm_bindgen(inspectable)]` attribute for exported objects to |
| generate `toJSON` and `toString` implementations. |
| [#1876](https://github.com/rustwasm/wasm-bindgen/pull/1876) |
| |
| * Support for the most recent interface types proposal has been implemented. |
| [#1882](https://github.com/rustwasm/wasm-bindgen/pull/1882) |
| |
| * Initial support for async iterators has been added. |
| [#1895](https://github.com/rustwasm/wasm-bindgen/pull/1895) |
| |
| * Support for an `async` start function was added. |
| [#1905](https://github.com/rustwasm/wasm-bindgen/pull/1905) |
| |
| * `Array::iter` and `Array::to_vec` methods were added to js-sys. |
| [#1909](https://github.com/rustwasm/wasm-bindgen/pull/1909) |
| |
| ### Fixed |
| |
| * Another webkit-specific WebIDL construct was fixed in web-sys. |
| [#1865](https://github.com/rustwasm/wasm-bindgen/pull/1865) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.55 |
| |
| Released 2019-11-19. |
| |
| ### Fixed |
| |
| * Running `wasm-bindgen` over empty anyref modules now works again. |
| [#1861](https://github.com/rustwasm/wasm-bindgen/pull/1861) |
| |
| * Support for multi-value JS engines has been fixed as a wasm interface types |
| polyfill. |
| [#1863](https://github.com/rustwasm/wasm-bindgen/pull/1863) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.54 |
| |
| Released 2019-11-07. |
| |
| ### Added |
| |
| * A safe `to_vec` method has been added for typed arrays. |
| [#1844](https://github.com/rustwasm/wasm-bindgen/pull/1844) |
| |
| * A unsafe method `view_mut_raw` has been added to typed arrays. |
| [#1850](https://github.com/rustwasm/wasm-bindgen/pull/1850) |
| |
| * The `HTMLImageElement` WebIDL has been updated with recent features. |
| [#1842](https://github.com/rustwasm/wasm-bindgen/pull/1842) |
| |
| * Binary crates are now supported and `fn main` will be automatically executed |
| like the `start` function. |
| [#1843](https://github.com/rustwasm/wasm-bindgen/pull/1843) |
| |
| ### Changed |
| |
| * Some JS glue generation has been tweaked to avoid TypeScript warnings. |
| [#1852](https://github.com/rustwasm/wasm-bindgen/pull/1852) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.53 |
| |
| Released 2019-10-29. |
| |
| ### Fixed |
| |
| * A bug with the experimental support for multi-value interface types has been |
| fixed. |
| [#1839](https://github.com/rustwasm/wasm-bindgen/pull/1839) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.52 |
| |
| Released 2019-10-24. |
| |
| ### Added |
| |
| * The support for wasm-interface-types now uses multi-value by default. |
| [#1805](https://github.com/rustwasm/wasm-bindgen/pull/1805) |
| |
| * The Worklet IDL has been updated. |
| [#1817](https://github.com/rustwasm/wasm-bindgen/pull/1817) |
| |
| * The HTMLInputElement type has selectionStart and selectionEnd properties now. |
| [#1811](https://github.com/rustwasm/wasm-bindgen/pull/1811) |
| |
| * An `unintern` function has been added to remove an interned string from the |
| cache. |
| [#1828](https://github.com/rustwasm/wasm-bindgen/pull/1828) |
| |
| ### Changed |
| |
| * Some WebIDL indexing getters have been corrected to reflect that they can |
| throw and/or return `undefined` |
| [#1789](https://github.com/rustwasm/wasm-bindgen/pull/1789) |
| |
| ### Fixed |
| |
| * A bug with `TextDecoder` and Safari has been fxied |
| [#1789](https://github.com/rustwasm/wasm-bindgen/pull/1789) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.51 |
| |
| Released 2019-09-26. |
| |
| ### Added |
| |
| * The `wasm-bindgen-futures` and `wasm-bindgen-test` crates now require Nightly |
| Rust and have a new major version published as a result. These crates now |
| support `async`/`await` by default, and they will be supported in the stable |
| Rust 1.39.0 release. The previous versions of crates will continue to work on |
| stable today. |
| [#1741](https://github.com/rustwasm/wasm-bindgen/pull/1741) |
| |
| * Using `#[wasm_bindgen]` on an `async` function will now work and return a |
| `Promise` on the JS side of things. |
| [#1754](https://github.com/rustwasm/wasm-bindgen/pull/1754) |
| |
| * More helper methods for `js_sys::Array` have been added. |
| [#1749](https://github.com/rustwasm/wasm-bindgen/pull/1749) |
| |
| * Initial support for the WebAssembly multi-value proposal has been added. |
| [#1764](https://github.com/rustwasm/wasm-bindgen/pull/1764) |
| |
| * Constructors for `js_sys::Date` with optional parameters has been added. |
| [#1759](https://github.com/rustwasm/wasm-bindgen/pull/1759) |
| |
| * Headless tests can now be run against a remote webdriver client |
| [#1744](https://github.com/rustwasm/wasm-bindgen/pull/1744) |
| |
| ### Changed |
| |
| * The `passStringToWasm` function has been optimized for size. |
| [#1736](https://github.com/rustwasm/wasm-bindgen/pull/1736) |
| |
| ### Fixed |
| |
| * BOM markers will not be preserved when passing strings to/from wasm. |
| [#1730](https://github.com/rustwasm/wasm-bindgen/pull/1730) |
| |
| * Importing a `static` value which isn't a `JsValue` has been fixed. |
| [#1784](https://github.com/rustwasm/wasm-bindgen/pull/1784) |
| |
| * Converting `undefined` to a Rust value via `into_serde` has been fixed. |
| [#1783](https://github.com/rustwasm/wasm-bindgen/pull/1783) |
| |
| * Routine errors are no longer erroneously logged in debug mode. |
| [#1788](https://github.com/rustwasm/wasm-bindgen/pull/1788) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.50 |
| |
| Released 2019-08-19. |
| |
| ### Added |
| |
| * Experimental support with a `WASM_INTERFACE_TYPES=1` environment variable has |
| been added to emit a Wasm Interface Types custom section, making the output of |
| `wasm-bindgen` a single standalone WebAssembly file. |
| [#1725](https://github.com/rustwasm/wasm-bindgen/pull/1725) |
| |
| ### Fixed |
| |
| * Unrelated errors are now no longer accidentally swallowed by the |
| `instantiateStreaming` fallback. |
| [#1723](https://github.com/rustwasm/wasm-bindgen/pull/1723) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.49 |
| |
| Released 2019-08-14. |
| |
| ### Added |
| |
| * Add binding for `Element.getElementsByClassName`. |
| [#1665](https://github.com/rustwasm/wasm-bindgen/pull/1665) |
| |
| * `PartialEq` and `Eq` are now implementd for all `web-sys` types. |
| [#1673](https://github.com/rustwasm/wasm-bindgen/pull/1673) |
| |
| * The `wasm-bindgen-futures` crate now has support for futures when the |
| experimental WebAssembly threading feature is enabled. |
| [#1514](https://github.com/rustwasm/wasm-bindgen/pull/1514) |
| |
| * A new `enable-interning` feature is available to intern strings and reduce the |
| cost of transferring strings across the JS/Rust boundary. |
| [#1612](https://github.com/rustwasm/wasm-bindgen/pull/1612) |
| |
| * The `wasm-bindgen` CLI has experimental support for reading native |
| `webidl-bindings` custom sections and generating JS glue. This support is in |
| addition to Rust's own custom sections and allows using `wasm-bindgen` with |
| binaries produced by other than rustc possibly. |
| [#1690](https://github.com/rustwasm/wasm-bindgen/pull/1690) |
| |
| * New environment variables have been added to configure webdriver startup |
| arguments. |
| [#1703](https://github.com/rustwasm/wasm-bindgen/pull/1703) |
| |
| * New `JsValue::{is_truthy,is_falsy}` methods are now available. |
| [#1638](https://github.com/rustwasm/wasm-bindgen/pull/1638) |
| |
| ### Changed |
| |
| * JS import shims are now skipped again when they are unnecessary. |
| [#1654](https://github.com/rustwasm/wasm-bindgen/pull/1654) |
| |
| * WebAssembly output files now directly embed the module/name for imports if |
| supported for the target and the import, reducing JS shims even further. |
| [#1689](https://github.com/rustwasm/wasm-bindgen/pull/1689) |
| |
| ### Fixed |
| |
| * Support for threads have been updated for LLVM 9 and nightly Rust. |
| [#1675](https://github.com/rustwasm/wasm-bindgen/pull/1675) |
| [#1688](https://github.com/rustwasm/wasm-bindgen/pull/1688) |
| |
| * The `anyref` passes in `wasm-bindgen` have seen a number of fixes to improve |
| their correctness and get the full test suite running. |
| [#1692](https://github.com/rustwasm/wasm-bindgen/pull/1692) |
| [#1704](https://github.com/rustwasm/wasm-bindgen/pull/1704) |
| |
| * Support for `futures-preview 0.3.0-alpha.18` has been added to |
| `wasm-bindgen-futures`. |
| [#1716](https://github.com/rustwasm/wasm-bindgen/pull/1716) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.48 |
| |
| Released 2019-07-11. |
| |
| ### Added |
| |
| * All typed arrays now implement `From` for the corresponding Rust slice type, |
| providing a safe way to create an instance which copies the data. |
| [#1620](https://github.com/rustwasm/wasm-bindgen/pull/1620) |
| |
| * `Function::bind{2,3,4}` are now available in `js-sys`. |
| [#1633](https://github.com/rustwasm/wasm-bindgen/pull/1633) |
| |
| ### Changed |
| |
| * More WebGL methods have been updated to use shared slices instead of mutable |
| slices. |
| [#1639](https://github.com/rustwasm/wasm-bindgen/pull/1639) |
| |
| * When using the `bundler` target the import of the wasm file now uses the |
| `.wasm` extension to ensure a wasm file is loaded. |
| [#1646](https://github.com/rustwasm/wasm-bindgen/pull/1646) |
| |
| * The old internal `Stack` trait has been removed since it is no longer used. |
| [#1624](https://github.com/rustwasm/wasm-bindgen/pull/1624) |
| |
| ### Fixed |
| |
| * The `js_sys::global()` accessor now attempts other strategies before falling |
| back to a `Function` constructor which can violate some strict CSP settings. |
| [#1650](https://github.com/rustwasm/wasm-bindgen/pull/1649) |
| |
| * Dropping a `JsFuture` no longer logs a benign error to the console. |
| [#1649](https://github.com/rustwasm/wasm-bindgen/pull/1649) |
| |
| * Fixed an assertion which could happen in some modules when generating |
| bindings. |
| [#1617](https://github.com/rustwasm/wasm-bindgen/pull/1617) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.47 |
| |
| Released 2019-06-19. |
| |
| ### Changed |
| |
| * The `HtmlHyperlinkElement` should now include more native methods after a |
| small edit to the WebIDL. |
| [#1604](https://github.com/rustwasm/wasm-bindgen/pull/1604) |
| |
| * Duplicate names for getters/setters now have a first-class `wasm-bindgen` |
| error. |
| [#1605](https://github.com/rustwasm/wasm-bindgen/pull/1605) |
| |
| ### Fixed |
| |
| * TypeScript definition of `init` with `--target web` now reflects that the |
| first argument is optional. |
| [#1599](https://github.com/rustwasm/wasm-bindgen/pull/1599) |
| |
| * A panic with the futures 0.3 support has been fixed. |
| [#1598](https://github.com/rustwasm/wasm-bindgen/pull/1598) |
| |
| * More slice types are recognized as becoming immutable in some WebIDL methods. |
| [#1602](https://github.com/rustwasm/wasm-bindgen/pull/1602) |
| |
| * The function table is now no longer too aggressively removed. |
| [#1606](https://github.com/rustwasm/wasm-bindgen/pull/1606) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.46 |
| |
| Released 2019-06-14. |
| |
| ### Added |
| |
| * Bindings for `Array#flat` and `Array#flatMap` have been added. |
| [#1573](https://github.com/rustwasm/wasm-bindgen/pull/1573) |
| |
| * All `#[wasm_bindgen]` types now `AsRef` to themslves. |
| [#1583](https://github.com/rustwasm/wasm-bindgen/pull/1583) |
| |
| * When using `--target web` the path passed to `init` is no longer required. |
| [#1579](https://github.com/rustwasm/wasm-bindgen/pull/1579) |
| |
| ### Fixed |
| |
| * Some diagnostics related to compiler errors in `#[wasm_bindgen]` have been |
| improved. |
| [#1550](https://github.com/rustwasm/wasm-bindgen/pull/1550) |
| |
| * The support for weak references has been updated to the current JS proposal. |
| [#1557](https://github.com/rustwasm/wasm-bindgen/pull/1557) |
| |
| * Documentation and feature gating for web-sys dictionaries has improved. |
| [#1572](https://github.com/rustwasm/wasm-bindgen/pull/1572) |
| |
| * Getter and setter TypeScript has been fixed. |
| [#1577](https://github.com/rustwasm/wasm-bindgen/pull/1577) |
| |
| * The `env_logger` crate and its tree of dependencies is no longer required to |
| build `web-sys`. |
| [#1586](https://github.com/rustwasm/wasm-bindgen/pull/1586) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.45 |
| |
| Released 2019-05-20. |
| |
| ### Fixed |
| |
| * Using `__wbindgen_cb_forget` on `--target web` has been fixed. |
| [#1544](https://github.com/rustwasm/wasm-bindgen/pull/1544) |
| |
| ### Changed |
| |
| * More whitelists have been added for `web-sys` to use shared slices instead of |
| mutable slices. |
| [#1539](https://github.com/rustwasm/wasm-bindgen/pull/1539) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.44 |
| |
| Released 2019-05-16. |
| |
| ### Added |
| |
| * Support for exporting "fields" on JS objects wrapping Rust structs which are |
| hooked up to getters/setters has been added. This is in addition to `pub` |
| struct fields and allows performing more complicated computations in |
| getters/setters. |
| [#1440](https://github.com/rustwasm/wasm-bindgen/pull/1440) |
| |
| * Support for futures 0.3 (and `async` / `await` syntax) has been added to the |
| `wasm-bindgen-futures` crate. |
| [#1507](https://github.com/rustwasm/wasm-bindgen/pull/1507) |
| |
| * Stacks of imported JS functions that throw and aren't marked `catch` are now |
| logged in debug mode. |
| [#1466](https://github.com/rustwasm/wasm-bindgen/pull/1466) |
| |
| * A utility for counting the size of the `anyref` heap has been added. |
| [#1521](https://github.com/rustwasm/wasm-bindgen/pull/1521) |
| |
| * Passing ASCII-only strings to WASM should now be significantly faster. |
| [#1470](https://github.com/rustwasm/wasm-bindgen/pull/1470) |
| |
| * The `selectionStart` and `selectionEnd` APIs of text areas have been enabled. |
| [#1533](https://github.com/rustwasm/wasm-bindgen/pull/1533) |
| |
| ### Changed |
| |
| * Some more methods in `web-sys` now take immutable slices instead of mutable |
| ones. |
| [#1508](https://github.com/rustwasm/wasm-bindgen/pull/1508) |
| |
| * TypeScript bindings for `Option<T>` arguments now use `foo?` where possible. |
| [#1483](https://github.com/rustwasm/wasm-bindgen/pull/1483) |
| |
| ### Fixed |
| |
| * Unnecessary bindings to `__wbindgen_object_drop_ref` have been fixed. |
| [#1504](https://github.com/rustwasm/wasm-bindgen/pull/1504) |
| |
| * Some direct imports have been fixed for `--target web`. |
| [#1503](https://github.com/rustwasm/wasm-bindgen/pull/1503) |
| |
| * Both importing and exporting the same name has been fixed. |
| [#1506](https://github.com/rustwasm/wasm-bindgen/pull/1506) |
| |
| * TypeScript typings for `init` in `--target web` have been fixed. |
| [#1520](https://github.com/rustwasm/wasm-bindgen/pull/1520) |
| |
| * Calling a dropped `Closure` should no longer "segfault" but produce a clear |
| error. |
| [#1530](https://github.com/rustwasm/wasm-bindgen/pull/1530) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.43 |
| |
| Released 2019-04-29. |
| |
| ### Added |
| |
| * Support for `isize` and `usize` arrays has been added. |
| [#1448](https://github.com/rustwasm/wasm-bindgen/pull/1448) |
| |
| * Support customizing `dyn_ref` and friends via a new `is_type_of` attribute and |
| apply it to some `js_sys` bindings. |
| [#1405](https://github.com/rustwasm/wasm-bindgen/pull/1405) |
| [#1450](https://github.com/rustwasm/wasm-bindgen/pull/1450) |
| [#1490](https://github.com/rustwasm/wasm-bindgen/pull/1490) |
| |
| * A new `skip` attribute to `#[wasm_bindgen]` has been added to skip fields and |
| methods when generating bindings. |
| [#1410](https://github.com/rustwasm/wasm-bindgen/pull/1410) |
| |
| * More bindings have been added to `web-sys` for interfaces tagged with |
| `[NoInterfaceObject]` in WebIDL. These types always fail `dyn_ref` and friends |
| and must be manually casted into. |
| [#1449](https://github.com/rustwasm/wasm-bindgen/pull/1449) |
| |
| * Added `Debug for JsFuture`. |
| [#1477](https://github.com/rustwasm/wasm-bindgen/pull/1477) |
| |
| * Initial bindings for `Atomics` and `SharedArrayBuffer` have been added to |
| `js_sys`. |
| [#1463](https://github.com/rustwasm/wasm-bindgen/pull/1463) |
| |
| * Bindings for `Object.fromEntries` has been added to `js_sys`. |
| [#1456](https://github.com/rustwasm/wasm-bindgen/pull/1456) |
| |
| * Tuple structs exported to JS now have indexed struct properties. |
| [#1467](https://github.com/rustwasm/wasm-bindgen/pull/1467) |
| |
| * Binding for `new Function(args, body)` has been added to `js_sys`. |
| [#1492](https://github.com/rustwasm/wasm-bindgen/pull/1492) |
| |
| * Bindings for some variadic functions have been added to `js_sys`. |
| [#1491](https://github.com/rustwasm/wasm-bindgen/pull/1491) |
| |
| ### Changed |
| |
| * Many `js-sys` types have received various tweaks and improvements to ensure |
| they're consistent and work similarly to native Rust types. |
| [#1447](https://github.com/rustwasm/wasm-bindgen/pull/1447) |
| [#1444](https://github.com/rustwasm/wasm-bindgen/pull/1444) |
| [#1473](https://github.com/rustwasm/wasm-bindgen/pull/1473) |
| |
| * Dummy types in `js-sys` only used to namespace methods were removed and now |
| modules are used for namespacing instead. |
| [#1451](https://github.com/rustwasm/wasm-bindgen/pull/1451) |
| |
| * Bindings in `web-sys` are formatted by default for ease of usage in IDEs. |
| [#1461](https://github.com/rustwasm/wasm-bindgen/pull/1461) |
| |
| ### Fixed |
| |
| * Documentation for Rust methods now show up in TypeScript as well. |
| [#1472](https://github.com/rustwasm/wasm-bindgen/pull/1472) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.42 |
| |
| Released 2019-04-11. |
| |
| ### Fixed |
| |
| * Fixed an issue in Firefox where using `encodeInto` accidentally caused empty |
| strings to keep getting passed to Rust. |
| [#1434](https://github.com/rustwasm/wasm-bindgen/pull/1434) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.41 |
| |
| Released 2019-04-10. |
| |
| ### Added |
| |
| * Initial support for transitive NPM dependencies has been added. |
| [#1305](https://github.com/rustwasm/wasm-bindgen/pull/1305) |
| |
| * The `constructor` property of `Object` is now bound in `js-sys`. |
| [#1403](https://github.com/rustwasm/wasm-bindgen/pull/1403) |
| |
| * The `Closure` type now always implements `Debug`. |
| [#1408](https://github.com/rustwasm/wasm-bindgen/pull/1408) |
| |
| * Closures which take one `&T` argument are now supported. More implementations |
| may be added in the future, but for now it's just one argument closures. |
| [#1417](https://github.com/rustwasm/wasm-bindgen/pull/1417) |
| |
| * The TypeScript bindings for `--web` now expose the `init` function. |
| [#1412](https://github.com/rustwasm/wasm-bindgen/pull/1412) |
| |
| * A `js_sys::JsString::is_valid_utf16` method has been added to handle unpaired |
| surrogates in JS strings. Surrounding documentation has also been updated to |
| document this potential pitfall. |
| [#1416](https://github.com/rustwasm/wasm-bindgen/pull/1416) |
| |
| * A `wasm_bindgen::function_table()` function has been added to expose the |
| `WebAssembly.Table` and get access to it in wasm code. |
| [#1431](https://github.com/rustwasm/wasm-bindgen/pull/1431) |
| |
| ### Fixed |
| |
| * Reexporting the `wasm_bindgen` macro in crates has been fixed. |
| [#1359](https://github.com/rustwasm/wasm-bindgen/pull/1359) |
| |
| * Returning `u32` to JS has been fixed where large `u32` values would show up in |
| JS as large negative numbers. |
| [#1401](https://github.com/rustwasm/wasm-bindgen/pull/1401) |
| |
| * Manual instantiation with `WebAssembly.Module` has been fixed. |
| [#1419](https://github.com/rustwasm/wasm-bindgen/pull/1419) |
| |
| * Error message for non-`Copy` public struct fields has been improved. |
| [#1430](https://github.com/rustwasm/wasm-bindgen/pull/1430) |
| |
| ### Changed |
| |
| * Performance of passing strings to Rust in Node.js has been improved. |
| [#1391](https://github.com/rustwasm/wasm-bindgen/pull/1391) |
| |
| * Performance of `js_sys::try_iter` has been improved. |
| [#1393](https://github.com/rustwasm/wasm-bindgen/pull/1393) |
| |
| * Performance of using `TextEncoder#encodeInto` has been improved. |
| [#1414](https://github.com/rustwasm/wasm-bindgen/pull/1414) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.40 |
| |
| Released 2019-03-21. |
| |
| ### Added |
| |
| * TypeScript and JS generation will now attempt to preserve argument names in |
| the generated JS where possible. |
| [#1344](https://github.com/rustwasm/wasm-bindgen/pull/1344) |
| |
| * Enable `Option<T>` support for enums defined in WebIDL. |
| [#1350](https://github.com/rustwasm/wasm-bindgen/pull/1350) |
| |
| * Add a `raw_module` attribute to `#[wasm_bindgen]` which is the same as |
| `module` except doesn't attempt to recognize `./`, `../`, `or `/` prefixed |
| paths. |
| [#1353](https://github.com/rustwasm/wasm-bindgen/pull/1353) |
| |
| * The `wasm-bindgen` CLI flags have now all been renamed under a `--target` |
| flag. Instead of `--web` you'll now pass `--target web`, for example. This |
| increases consistency between the `wasm-bindgen` and `wasm-pack` CLI. |
| [#1369](https://github.com/rustwasm/wasm-bindgen/pull/1369) |
| |
| ### Fixed |
| |
| * Definitions for `TypedArray` imports of `js-sys` have been unified with a |
| macro to improve consistency and fix future bugs. |
| [#1371](https://github.com/rustwasm/wasm-bindgen/pull/1371) |
| |
| * Usage of `--no-modules` in CloudFlare workers should now work by default. |
| [#1384](https://github.com/rustwasm/wasm-bindgen/pull/1384) |
| |
| * A use-after-free when a closure is reinvoked after being destroyed on the Rust |
| die has been fixed. |
| [#1385](https://github.com/rustwasm/wasm-bindgen/pull/1385) |
| |
| * A bug causing nondeterministic generation of JS bindings has been fixed. |
| [#1383](https://github.com/rustwasm/wasm-bindgen/pull/1383) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.39 |
| |
| Released 2018-03-13. |
| |
| ### Added |
| |
| * Crates can now import locally written JS snippets to get bundled into the |
| final output. See [RFC 6] for more details as well as the PR. |
| [#1295](https://github.com/rustwasm/wasm-bindgen/pull/1295) |
| |
| [RFC 6]: https://github.com/rustwasm/rfcs/pull/6 |
| |
| ### Changed |
| |
| * A typo in the return value of `slice` methods on typed arrays in `js-sys` was |
| corrected. |
| [#1321](https://github.com/rustwasm/wasm-bindgen/pull/1321) |
| |
| * The directory specified by `--out-dir` is now created if it doesn't exist |
| already. |
| [#1330](https://github.com/rustwasm/wasm-bindgen/pull/1330) |
| |
| ### Fixed |
| |
| * A bug where if `nom` was in a crate graph and was compiled with the |
| `verbose-errors` feature has been fixed. Previously the `wasm-bindgen-webidl` |
| crate wouldn't compile, and now it will. |
| [#1338](https://github.com/rustwasm/wasm-bindgen/pull/1338) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.38 |
| |
| Released 2019-03-04. |
| |
| ### Added |
| |
| * Support for `Option<RustStruct>` in `#[wasm_bindgen]` functions has now been |
| added. |
| [#1275](https://github.com/rustwasm/wasm-bindgen/pull/1275) |
| |
| * Experimental support for the `anyref` type proposal in WebAssembly has now |
| landed and is enabled with `WASM_BINDGEN_ANYREF=1`. |
| [#1002](https://github.com/rustwasm/wasm-bindgen/pull/1002) |
| |
| * Support fot the new browser `TextEncode#encodeInto` API has been added. |
| [#1279](https://github.com/rustwasm/wasm-bindgen/pull/1279) |
| |
| * JS doc comments are now added to TypeScript bindings in addition to the JS |
| bindings generated. |
| [#1302](https://github.com/rustwasm/wasm-bindgen/pull/1302) |
| |
| * Initial support for `FnOnce` closures has been added to the `Closure` type. |
| [#1281](https://github.com/rustwasm/wasm-bindgen/pull/1281) |
| |
| ### Fixed |
| |
| * Fixed an internal assert tripping when some modules were compiled with LTO. |
| [#1274](https://github.com/rustwasm/wasm-bindgen/pull/1274) |
| |
| * The `Context` type in the `wasm-bindgen-test` crate had its JS name changed to |
| avoid conflicts with other crates that have a `Context` type being exported. |
| [#1280](https://github.com/rustwasm/wasm-bindgen/pull/1280) |
| |
| * The headless test runner for Safari on macOS High Sierra has been fixed. |
| [#1298](https://github.com/rustwasm/wasm-bindgen/pull/1298) |
| |
| ### Changed |
| |
| * The `wasm-bindgen` CLI tool now emits the `producers` section again with |
| relevant bugs having been fixed in the meantime. The |
| `--remove-producers-section` flag can continue to be used to omit emission of |
| this section. |
| [#1263](https://github.com/rustwasm/wasm-bindgen/pull/1263) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.37 |
| |
| Released 2019-02-15. |
| |
| ### Added |
| |
| * The `HtmlMediaElement` type now exposes a `src_object` getter. |
| [#1248](https://github.com/rustwasm/wasm-bindgen/pull/1248). |
| |
| * The `js_sys::Reflect` type now has specializes getter/setters for `u32` and |
| `f64` indices. |
| [#1225](https://github.com/rustwasm/wasm-bindgen/pull/1225). |
| |
| * A `--remove-producers-section` flag has been added to the CLI tool to, well, |
| remove the `producers` section from the final wasm file. |
| [#1256](https://github.com/rustwasm/wasm-bindgen/pull/1256). |
| |
| ### Fixed |
| |
| * The `wasm-bindgen` CLI tool will correctly strip DWARF debug information |
| unless `--keep-debug` is passed. |
| [#1255](https://github.com/rustwasm/wasm-bindgen/pull/1255). |
| |
| ### Changed |
| |
| * The `wasm-bindgen` CLI tool no longer emits the `producers` custom section by |
| default to work around a [webpack bug]. See |
| [#1260](https://github.com/rustwasm/wasm-bindgen/pull/1260). |
| |
| [webpack bug]: https://github.com/webpack/webpack/pull/8786 |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.36 |
| |
| Released 2019-02-12. |
| |
| ### Fixed |
| |
| * Fixed a bug where using closures and LTO together caused a panic inside the |
| `wasm-bindgen` CLI tool. See |
| [#1244](https://github.com/rustwasm/wasm-bindgen/issues/1244). |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.35 |
| |
| Released 2019-02-12. |
| |
| ### Changed |
| |
| * `wasm-bindgen` now internally uses the `walrus` crate to perform its |
| transformations of the wasm that rustc/LLVM emits. See |
| [#1237](https://github.com/rustwasm/wasm-bindgen/pull/1237). |
| |
| ### Fixed |
| |
| * When `WebAssembly.instantiateStreaming` fails due to incorrect MIME type, |
| *actually* properly recover. See |
| [#1243](https://github.com/rustwasm/wasm-bindgen/pull/1243). |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.34 |
| |
| Released 2019-02-11. |
| |
| ### Added |
| |
| * Added support for optional `enum`s. See |
| [#1214](https://github.com/rustwasm/wasm-bindgen/pull/1214). |
| * Added the `UnwrapThrowExt<T>` trait, which can enable smaller code sizes for |
| panics. See [#1219](https://github.com/rustwasm/wasm-bindgen/pull/1219). |
| |
| ### Fixed |
| |
| * Some `WebGlRenderingContext` methods are now whitelisted to use shared slices |
| instead of exclusive slices. See |
| [#1199](https://github.com/rustwasm/wasm-bindgen/pull/1199). |
| * Fixed TypeScript definitions for optional types. See |
| [#1201](https://github.com/rustwasm/wasm-bindgen/pull/1201). |
| * Quiet clippy warnings inside generated code. See |
| [1207](https://github.com/rustwasm/wasm-bindgen/pull/1207). |
| * Fixed using `cfg_attr` and `wasm_bindgen` together like `#[cfg_attr(..., |
| wasm_bindgen)]`. See |
| [1208](https://github.com/rustwasm/wasm-bindgen/pull/1208). |
| * The WebAudio example program was fixed. See |
| [#1215](https://github.com/rustwasm/wasm-bindgen/pull/1215). |
| * Fixed logging HTML in `wasm-bindgen-test`. See |
| [#1233](https://github.com/rustwasm/wasm-bindgen/pull/1233). |
| * When `WebAssembly.instantiateStreaming` fails due to incorrect MIME type, |
| properly recover. See |
| [#1235](https://github.com/rustwasm/wasm-bindgen/pull/1235). |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.33 |
| |
| Released 2019-01-18. |
| |
| ### Added |
| |
| * Improved the `Debug` output of `JsValue` |
| [#1161](https://github.com/rustwasm/wasm-bindgen/pull/1161) |
| |
| * Bindings for `JSON.stringify` and its optional arguments have been added |
| [#1190](https://github.com/rustwasm/wasm-bindgen/pull/1190) |
| |
| ### Fixed |
| |
| * A bug with windows binaries being released has ben resolved. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.32 |
| |
| Released 2019-01-16. |
| |
| ### Added |
| |
| * Added support for Web IDL sequences. This enabled bindings generation for a |
| couple more Web APIs. We generate functions for Web APIs that take sequences |
| to accept any iterable, and for Web APIs that return sequences, a |
| `js_sys::Array` is returned. See |
| [#1152](https://github.com/rustwasm/wasm-bindgen/pull/1152) and |
| [#1038](https://github.com/rustwasm/wasm-bindgen/issues/1038). |
| * The `wasm-bindgen-test` test runner will capture `console.debug`, |
| `console.info`, and `console.warn` log messages and print them to `stdout` |
| now. It already supported `console.log` and `console.error` and continues to |
| support them. See |
| [#1183](https://github.com/rustwasm/wasm-bindgen/issues/1183) and |
| [#1184](https://github.com/rustwasm/wasm-bindgen/pull/1184). |
| * Added additional `--debug`-only assertions in the emitted JS glue for cases |
| where an imported JS function that is not annotated with |
| `#[wasm_bindgen(catch)]` throws an exception. This should help catch some bugs |
| earlier! See [#1179](https://github.com/rustwasm/wasm-bindgen/pull/1179). |
| |
| ### Fixed |
| |
| * Fixed a bug where `#[wasm_bindgen_test]` tests would fail in non-headless Web |
| browsers if they used `console.log`. See |
| [#1167](https://github.com/rustwasm/wasm-bindgen/pull/1167). |
| * Fixed a bug where returning closures from exported functions sometimes |
| resulted in a faulty error. See |
| [#1174](https://github.com/rustwasm/wasm-bindgen/issues/1174) and |
| [#1175](https://github.com/rustwasm/wasm-bindgen/pull/1175). |
| * Sometimes our generated TypeScript interface files had syntax errors in them |
| (missing semicolons). This has been fixed. See |
| [#1181](https://github.com/rustwasm/wasm-bindgen/pull/1181). |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.31 |
| |
| Released 2019-01-09. |
| |
| ### Added |
| |
| * A new `spawn_local` function has been added to the `wasm-bindgen-futures` |
| crate. |
| [#1148](https://github.com/rustwasm/wasm-bindgen/pull/1148) |
| |
| * Built-in conversions are now available from typed arrays and Rust arrays. |
| [#1147](https://github.com/rustwasm/wasm-bindgen/pull/1147) |
| |
| ### Fixed |
| |
| * Some casing of dictionary properties in WebIDL has been fixed. |
| [#1155](https://github.com/rustwasm/wasm-bindgen/pull/1155) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.30 |
| |
| Released 2019-01-07. |
| |
| ### Added |
| |
| * The `wasm-bindgen` CLI now has an `--out-name` argument to name the output |
| module. |
| [#1084](https://github.com/rustwasm/wasm-bindgen/pull/1084) |
| |
| * Support for importing the `default` export has been added. |
| [#1106](https://github.com/rustwasm/wasm-bindgen/pull/1106) |
| |
| ### Changed |
| |
| * All `web-sys` methods are now flagged as `structural`, fixing a few bindings. |
| [#1117](https://github.com/rustwasm/wasm-bindgen/pull/1117) |
| |
| ### Fixed |
| |
| * A small bug with LTO and closures has been fixed. |
| [#1145](https://github.com/rustwasm/wasm-bindgen/pull/1145) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.29 |
| |
| Released 2018-12-04. |
| |
| ### Added |
| |
| * Add a `#[wasm_bindgen(start)]` attribute to customize the `start` section of |
| the wasm module. |
| [#1057](https://github.com/rustwasm/wasm-bindgen/pull/1057) |
| |
| * Add support for producing the new "producers" section of wasm binaries |
| [#1041](https://github.com/rustwasm/wasm-bindgen/pull/1041) |
| |
| * Add support a `typescript_custom_section` attribute for producing custom |
| typescript abstractions |
| [#1048](https://github.com/rustwasm/wasm-bindgen/pull/1048) |
| |
| * Generate `*.d.ts` files for wasm files in addition to the JS bindings |
| [#1053](https://github.com/rustwasm/wasm-bindgen/pull/1053) |
| |
| * Add a feature to assert that all attributes in `#[wasm_bindgen]` are used to |
| help catch typos and mistakes |
| [#1055](https://github.com/rustwasm/wasm-bindgen/pull/1055) |
| |
| ### Changed |
| |
| * JS glue generation has received a few small optimizations such as removing |
| shims and removing object allocations |
| [#1033](https://github.com/rustwasm/wasm-bindgen/pull/1033) |
| [#1030](https://github.com/rustwasm/wasm-bindgen/pull/1030) |
| |
| * JS glue now just uses one array of JS objects instead of two |
| [#1069](https://github.com/rustwasm/wasm-bindgen/pull/1069) |
| |
| ### Fixed |
| |
| * Fix a typo in the `--no-modules` generated JS |
| [#1045](https://github.com/rustwasm/wasm-bindgen/pull/1045) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.28 |
| |
| Released 2018-11-12. |
| |
| ### Added |
| |
| * The `js_class` support is now supported on exported types to define a |
| different class in JS than is named in Rust |
| [#1012](https://github.com/rustwasm/wasm-bindgen/pull/1012) |
| |
| * More WebIDL bindings are exposed with some internal restructuring to ignore |
| unimplemented types at a different location |
| [#1014](https://github.com/rustwasm/wasm-bindgen/pull/1014) |
| |
| * All imported types now implement `Deref` to their first `extends` attribute |
| (or `JsValue` if one isn't listed). This is intended to greatly improve the |
| ergonomics of `web-sys` bindings by allowing easy access to parent class |
| methods |
| [#1019](https://github.com/rustwasm/wasm-bindgen/pull/1019) |
| |
| * A new attribute, `final`, can be applied to JS imports. This attribute is |
| relatively nuanced and [best explained in documentation][final-dox], but is |
| added since `structural` is now the default |
| [#1019](https://github.com/rustwasm/wasm-bindgen/pull/1019) |
| |
| [final-dox]: https://rustwasm.github.io/wasm-bindgen/reference/attributes/on-js-imports/final.html |
| |
| * A new CLI flag, `--remove-name-section`, can be passed to remove the wasm |
| `name` section which contains the names of functions for debugging (typically |
| not needed in release mode) |
| [#1024](https://github.com/rustwasm/wasm-bindgen/pull/1024) |
| |
| ### Changed |
| |
| * All imported functions are now `structural` by default. This shouldn't change |
| the semantics of imported functions, only how they're invoked in the JS |
| function shims that are generated by `wasm-bindgen`. More discussion can be |
| founed on [RFC 5] and the PR |
| [#1019](https://github.com/rustwasm/wasm-bindgen/pull/1019) |
| |
| [RFC 5]: https://rustwasm.github.io/rfcs/005-structural-and-deref.html |
| |
| * JS glue assertions for moved arguments are now only emitted in debug mode, |
| which is still off by default |
| [#1020](https://github.com/rustwasm/wasm-bindgen/pull/1020) |
| |
| ### Fixed |
| |
| * Typescript generated bindings now correctly reflect `Option<T>` for more types |
| [#1008](https://github.com/rustwasm/wasm-bindgen/pull/1008) |
| |
| * The JS shim code generation has been optimized for `structural` bindings (now |
| the default) to include fewer JS shims and more easily optimizable for JS |
| engines |
| [#1019](https://github.com/rustwasm/wasm-bindgen/pull/1019) |
| |
| * Passing a `WebAssembly.Module` to the `--no-modules` constructor has been |
| fixed |
| [#1025](https://github.com/rustwasm/wasm-bindgen/pull/1025) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.27 |
| |
| Released 2018-10-29. |
| |
| ### Fixed |
| |
| * Fixed an internal panic where the gc passes were being too aggressive |
| [#995](https://github.com/rustwasm/wasm-bindgen/pull/995) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.26 |
| |
| Released 2018-10-29. |
| |
| ### Added |
| |
| * The `TypedArray.slice` methods have now been bound in `js-sys`. |
| [#956](https://github.com/rustwasm/wasm-bindgen/pull/956) |
| |
| * The `Debug` and `Clone` traits are now implemented for `js_sys::Promise`. |
| [#957](https://github.com/rustwasm/wasm-bindgen/pull/957) |
| |
| * The `js_sys::DataView` type now exposes overloads to specify endianness. |
| [#966](https://github.com/rustwasm/wasm-bindgen/pull/966) |
| |
| * When using `--no-modules` a `WebAssembly.Module` can now be directly passed |
| into the instantiation glue. |
| [#969](https://github.com/rustwasm/wasm-bindgen/pull/969) |
| |
| ### Fixed |
| |
| * The `JsValue` type is no longer considered `Send`. |
| [#955](https://github.com/rustwasm/wasm-bindgen/pull/955) |
| |
| * The generated JS glue is now more robust in the face of missing APIs. |
| [#959](https://github.com/rustwasm/wasm-bindgen/pull/959) |
| |
| * An issue with the latest version of `safaridriver` used to run headless tests |
| has been resolved. |
| [#991](https://github.com/rustwasm/wasm-bindgen/pull/991) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.25 |
| |
| Released 2018-10-10. |
| |
| ### Fixed |
| |
| * Using `wasm-bindgen` will no longer unconditionally pull in Rust's default |
| allocator for Wasm (dlmalloc) regardless if you configured a custom global |
| allocator (eg wee_alloc). |
| [#947](https://github.com/rustwasm/wasm-bindgen/pull/947) |
| |
| * Fixed web-sys build on some Windows machines. |
| [#943](https://github.com/rustwasm/wasm-bindgen/issues/943) |
| |
| * Fixed generated ES class bindings to Rust structs that were only referenced |
| through struct fields. |
| [#948](https://github.com/rustwasm/wasm-bindgen/issues/948) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.24 |
| |
| Released 2018-10-05. |
| |
| ### Added |
| |
| * Constructors for types in `web-sys` should now have better documentation. |
| |
| * A new `vendor_prefix` attribute in `#[wasm_bindgen]` is supported to bind APIs |
| on the web which may have a vendor prefix (like `webkitAudioContext`). This is |
| then subsequently used to fix `AudioContext` usage in Safari. |
| |
| * The `#[wasm_bindgen(extends = Foo)]` attribute now supports full paths, so you |
| can also say `#[wasm_bindgen(extends = foo::Bar)]` and such. |
| |
| ### Changed |
| |
| * The `Closure<T>` type is now optimized when the underlying closure is a ZST. |
| The type now no longer allocates memory in this situation. |
| |
| * The documentation now has a list of caveats for browser support, including how |
| `TextEncoder` and `TextDecoder` are not implemented in Edge. If you're using |
| webpack there's a listed strategy available, and improvements to the polyfill |
| strategy are always welcome! |
| |
| * The `BaseAudioContext` and `AudioScheduledSourceNode` types in `web-sys` have |
| been deprecated as they don't exist in Safari or Edge. |
| |
| ### Fixed |
| |
| * Fixed the `#[wasm_bindgen_test]`'s error messages in a browser to correctly |
| escape HTML-looking output. |
| |
| * WebIDL Attributes on `Window` are now correctly bound to not go through |
| `Window.prototype` which doesn't exist but instead use a `structural` |
| definition. |
| |
| * Fixed a codegen error when the `BorrowMut` trait was in scope. |
| |
| * Fixed TypeScript generation for constructors of classes, it was accidentally |
| producing a syntactially invalid file! |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.23 |
| |
| Released 2018-09-26. |
| |
| ### Added |
| |
| * [This is the first release of the `web-sys` |
| crate!](https://rustwasm.github.io/2018/09/26/announcing-web-sys.html) |
| |
| * Added support for unions of interfaces and non-interfaces in the WebIDL |
| frontend. |
| |
| * Added a policy for inclusion of new ECMAScript features in `js-sys`: the |
| feature must be in stage 4 or greater for us to support it. |
| |
| * Added some documentation about size profiling and optimization with |
| `wasm-bindgen` to the guide. |
| |
| * Added the `Clamped<T>` type for generating JavaScript `Uint8ClampedArray`s. |
| |
| * CI is now running on beta! Can't wait for the `rustc` release trains to roll |
| over, so we can run CI on stable too! |
| |
| * Added the `js_sys::try_iter` function, which checks arbitrary JS values for |
| compliance with the JS iteration protocol, and if they are iterable, converts |
| them into an iterator over the JS values that they yield. |
| |
| ### Changed |
| |
| * We now only generate null checks on methods on the JS side when in debug |
| mode. For safety we will always null check on the Rust side, however. |
| |
| * Improved error messages when defining setters that don't start with `set_` and |
| don't use `js_name = ...`. |
| |
| * Improved generated code for classes in a way that avoids an unnecessary |
| allocation with static methods that return `Self` but are not the "main" |
| constructor. |
| |
| * **BREAKING:** `js_sys::Reflect` APIs are all fallible now. This is because |
| reflecting on `Proxy`s whose trap handlers throw an exception can cause any of |
| the reflection APIs to throw. Accordingly, `js_sys` has been bumped from |
| `0.2.X` to `0.3.X`. |
| |
| ### Fixed |
| |
| * The method of ensuring that `__wbindgen_malloc` and `__wbindgen_free` are |
| always emitted in the `.wasm` binary, regardless of seeming reachability is |
| now zero-overhead. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.22 |
| |
| Released 2018-09-21 |
| |
| ### Added |
| |
| * The `IntoIterator` trait is now implemented for JS `Iterator` types |
| * A number of variadic methods in `js-sys` have had explicit arities added. |
| * The guide has been improved quite a bit as well as enhanced with more examples |
| * The `js-sys` crate is now complete! Thanks so much to everyone involved to |
| help fill out all the APIs. |
| * Exported Rust functions with `#[wasm_bindgen]` can now return a `Result` where |
| the `Err` payload is raised as an exception in JS. |
| |
| ### Fixed |
| |
| * An issue with running `wasm-bindgen` on crates that have been compiled with |
| LTO has been resolved. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.21 |
| |
| Released 2018-09-07 |
| |
| ### Added |
| |
| * Added many more bindings for `WebAssembly` in the `js-sys` crate. |
| |
| ### Fixed |
| |
| * The "names" section of the wasm binary is now correctly preserved by |
| wasm-bindgen. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 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. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 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. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 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 |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 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 |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.15 |
| |
| Released 2018-07-26. |
| |
| ### Fixed |
| |
| * Fixed `wasm-bindgen` CLI version mismatch checks that got broken in the last |
| point release. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 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 |
| |
| 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 |
| |
| ### Fixed |
| |
| * Compilation with the latest nightly compiler has been fixed (nightlies on and |
| after 2018-07-21) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.12 |
| |
| Released 2018-07-19. |
| |
| 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! |
| |
| [js-all]: https://github.com/rustwasm/wasm-bindgen/issues/275 |
| |
| ### Added |
| |
| * 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. |
| |
| [book]: https://rustwasm.github.io/wasm-bindgen/ |
| |
| ### 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. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.11 |
| |
| Released 2018-05-24. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.10 |
| |
| Released 2018-05-17. |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.2.9 |
| |
| Released 2018-05-11. |