wasm-bindgen/examples
Alex Crichton bb7271aa43 Fix our WebIDL for Safari
This commit employs the strategy described in #908 to apply a
non-breaking change to fix WebIDL to be compatible with all browsers,
including Safari.

The problem here is that `BaseAudioContext` and `AudioScheduledSourceNode`
are not types in Safari, but they are types in Firefox/Chrome. The fix
here was to move the contents of these two interfaces into mixins, and
then include the mixins in all classes which inherit from these two
classes. That should have the same effect as defining the methods
inherently on the original interface.

Additionally a special `[RustDeprecated]` attribute to WebIDL was added
to signify interfaces this has happened to. Currently it's directly
tailored towards this case of "this intermediate class doesn't exist in
all browsers", but we may want to refine and extend the deprecation
message over time.

Although it's possible we could do this as a breaking change to
`web-sys` I'm hoping that we can do this as a non-breaking change for
now and then eventually on the next breaking release batch all these
changes together, deleting the intermediate classes. This is also
hopefully a good trial run for how stable web-sys can be when it's
actually stable!

cc #897
cc #908
2018-10-01 12:24:37 -07:00
..
add Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
canvas Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
char Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
closures Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
console_log Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
dom Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
duck-typed-interfaces cargo +nightly fmt --all 2018-09-26 08:26:00 -07:00
fetch Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
guide-supported-types-examples cargo +nightly fmt --all 2018-09-26 08:26:00 -07:00
hello_world Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
import_js Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
julia_set Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
no_modules Reorganize and rewrite examples 2018-09-20 16:45:30 -07:00
paint Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
performance Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
wasm2js update to "webpack-cli": "^3.1.1" 2018-09-25 18:50:27 -07:00
wasm-in-wasm Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
webaudio Fix our WebIDL for Safari 2018-10-01 12:24:37 -07:00
webgl Add catch(console.error) to all examples 2018-09-28 13:55:07 -07:00
README.md Reorganize and rewrite examples 2018-09-20 16:45:30 -07:00

Examples

This directory contains a number of Cargo projects that are all examples of how to use wasm-bindgen in various contexts. More documentation can be found online