Skip to content

Commit

Permalink
Update browser support caveats (#2441)
Browse files Browse the repository at this point in the history
* Update browser support caveats

- Edge 79+ supports `TextEncoder and `TextDecoder` APIs  (https://caniuse.com/textencoder)
- Edge 79+ and Safari 14+ supports BigInt (https://caniuse.com/bigint)

* Keep sections and specify support starting on version
  • Loading branch information
AminArria authored Feb 3, 2021
1 parent 920494c commit d6228e6
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions guide/src/reference/browser-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ also like to be aware of it!
an example of doing this too](../examples/wasm2js.html)). Note
that at this time no bundler will do this by default, but we'd love to
document plugins which do this if you are aware of one!

* **Edge** - the `TextEncoder` and `TextDecoder` APIs are not currently
* **Edge before 79+** - the `TextEncoder` and `TextDecoder` APIs where not
available in Edge which `wasm-bindgen` uses to encode/decode strings between
JS and Rust. You can polyfill this with at least one of two strategies:

Expand All @@ -31,15 +31,13 @@ also like to be aware of it!

```js
const webpack = require('webpack');

module.exports = {
plugins: [
new webpack.ProvidePlugin({
TextDecoder: ['text-encoding', 'TextDecoder'],
TextEncoder: ['text-encoding', 'TextEncoder']
})
]

// ... other configuration options
};
```
Expand All @@ -58,10 +56,9 @@ also like to be aware of it!
forbids the usage of 64-bit integers (Rust types `i64` and `u64`) in
exported/imported functions. When using `wasm-bindgen`, however, `u64` is
allowed! The reason for this is that it's translated to the `BigInt` type in
JS. The `BigInt` class, however, is only currently supported in Chrome 67+ and
Firefox 68+ (as of the time of this writing) and isn't supported in Edge or
Safari, for example. For more, up-to-date details, see [`BigInt` on Can I
use...][ciu_bigint].
JS. The `BigInt` class is supported by all major browsers starting in the
following versions: Chrome 67+, Firefox 68+, Edge 79+, and Safari 14+.


If you find other incompatibilities please report them to us! We'd love to
either keep this list up-to-date or fix the underlying bugs :)
Expand All @@ -72,4 +69,3 @@ either keep this list up-to-date or fix the underlying bugs :)
[`text-encoding`]: https://www.npmjs.com/package/text-encoding
[soq]: https://stackoverflow.com/questions/40662142/polyfill-for-textdecoder/46549188#46549188
[mdntepi]: https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder#Polyfill
[ciu_bigint]: https://caniuse.com/#feat=bigint

0 comments on commit d6228e6

Please sign in to comment.