Commit Graph

2510 Commits

Author SHA1 Message Date
4357d7d23d Merge pull request #934 from alexcrichton/bump
Bump to 0.2.24
0.2.24
2018-10-05 11:20:50 -07:00
c210ccd596 Bump to 0.2.24 2018-10-05 09:53:19 -07:00
f064f5a9d4 Merge pull request #933 from expobrain/basig_usage_fix
Update installation of toolchain in Basic Usage page
2018-10-05 09:25:19 -07:00
882c6ef0ed Update installation of toolchain in Basic Usage page 2018-10-05 17:15:22 +01:00
b6caad4df8 Merge pull request #932 from twilco/fix-broken-link
Fix broken link to contribution page
2018-10-05 08:41:03 -07:00
2aaa4b8fc6 Fix broken link to contribution page 2018-10-05 10:25:55 -05:00
e368e49af1 Merge pull request #928 from alexcrichton/node-args
Allow passing extra args to node in test runner
2018-10-04 23:13:58 -07:00
7eb49acf0d Allow passing extra args to node in test runner
This can be useful for enabling experimental features
2018-10-04 22:20:23 -07:00
64a39703ef Merge pull request #930 from alexcrichton/ssl
Use `https` on badge url
2018-10-04 12:48:56 -07:00
c584b8ac84 Use https on badge url 2018-10-04 11:10:35 -07:00
7ea3ee60b7 Merge pull request #927 from alexcrichton/fix-browser
Fix the `no_modules` example by fixing `--browser`
2018-10-03 16:34:31 -07:00
0b736c7ef0 Merge pull request #926 from alexcrichton/fix-warnings
Filter only for `RustDeprecated` in attrs
2018-10-03 16:33:46 -07:00
3f357f46eb Fix the no_modules example by fixing --browser
Recent refactorings forgot a case of emitting code for
`cachedTextDecoder`!
2018-10-03 15:54:57 -07:00
9eaba6e28b Filter only for RustDeprecated in attrs
Previously any string-related attribute would emit a deprecation
warning!

cc #925
2018-10-03 15:44:58 -07:00
84bda02bbf Merge pull request #923 from alexcrichton/extends-path
Parse `Path`s in `extends` attributes
2018-10-03 10:38:50 -07:00
b7f1f9c086 Merge pull request #924 from alexcrichton/no-closure-new
Switch `Closure::new` to `wrap` in paint example
2018-10-03 10:38:39 -07:00
991e61931e Switch Closure::new to wrap in paint example
Show off stable usage!
2018-10-03 09:53:55 -07:00
5df8e20815 Parse Paths in extends attributes
Closes #916
2018-10-03 09:14:23 -07:00
4a5e13b08b Merge pull request #920 from alexcrichton/fix-borrow-mut
Fix exporting structs with `BorrowMut` in scope
2018-10-03 09:09:36 -07:00
05742177c2 Merge pull request #921 from alexcrichton/fix-typescript
Fix TypeScript for generated constructors
2018-10-03 09:09:23 -07:00
32fd1227e4 Merge pull request #910 from alexcrichton/fix-text-encoder-edge
Fix polyfill of `TextEncoder` and `TextDecoder`
2018-10-03 00:07:30 -07:00
157750fd99 Fix TypeScript for generated constructors
It accidentally had a stray colon!

Closes #917
2018-10-03 00:00:54 -07:00
32b62b4358 Fix exporting structs with BorrowMut in scope
Apparently the codegen wasn't precise enough such that a trait import
could cause method resolution to go awry!

Closes #919
2018-10-02 23:56:15 -07:00
7ec1511d3d Merge pull request #915 from alexcrichton/add-inline
Add a number of `#[inline]` annotation through crates
2018-10-02 16:46:32 -07:00
727e0a7154 Fix Closure::forget
It forgot to actually forget the contents!
2018-10-01 15:37:15 -07:00
332beecabe Add a number of #[inline] annotation through crates
Adding `#[inline]` will typically improve codegen for optimized builds
without LTO (so far the majority in practice) by allowing functions that
otherwise couldn't be inlined across codegen units to get inlined
across codegen units.

Right now `wasm-bindgen` has a lot of functions that are very small and
delegate to other functions, but aren't otherwise candidates for
inlining because they're concrete.

I was poking around in release-mode wasm recently and noticed an
alarming number of functions for tiny pieces of functionality, which
motivates this patch!
2018-10-01 15:31:09 -07:00
9c085dc0f5 Merge pull request #914 from alexcrichton/rename-polyfill
Rename `polyfill` to `vendor_prefix`
2018-10-01 14:47:07 -07:00
f75349262a Rename polyfill to vendor_prefix
cc #906
2018-10-01 14:45:30 -07:00
8e7238d15f Fix test --release
Unfortuantely we need to do some linking trickery to make sure a custom
section is correctly pulled in...
2018-10-01 14:44:21 -07:00
a7e9da0a81 Merge pull request #879 from alexcrichton/closure-zst
Improve codegen for `Closure<T>`
2018-10-01 14:41:13 -07:00
3001d1e973 Merge pull request #909 from alexcrichton/fix-webidl
Fix our WebIDL for Safari
2018-10-01 14:40:56 -07:00
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
473258f731 Merge pull request #913 from fitzgen/allow-unused-js-sys-object-import
web-sys: allow unused import warning
2018-10-01 10:06:41 -07:00
0a48d2bc29 web-sys: allow unused import warning
This import is only used if some features get used and it is way easier to just
quiet the warning when those features aren't used than to try and `cfg` this
import.
2018-10-01 09:53:03 -07:00
717cfa303d Fix polyfill of TextEncoder and TextDecoder
This commit does a few things, including:

* Fixing the generated JS of `wasm-bindgen` to allow polyfills to work.
  (a minor tweak of the generated JS)

* All examples are updated to include a Webpack-specific polyfill for
  these two types to get examples working in Edge.

* A new page has been added to the guide about supported browsers. This
  mentions known caveats like IE 11 requiring `wasm2js` as well as
  documenting some `TextEncoder` and `TextDecoder` workarounds for Edge.

Closes #895
2018-09-30 10:16:20 -07:00
62c5699f48 Merge pull request #911 from alexcrichton/fixed-indexed-db
Fix WebIDL mixin attributes on `Window`
2018-09-29 22:40:27 +02:00
8ba41cce6e Improve codegen for Closure<T>
This commit improves the codegen for `Closure<T>`, primarily for ZST
where the closure doesn't actually capture anything. Previously
`wasm-bindgen` would unconditionally allocate an `Rc` for a fat pointer,
meaning that it would always hit the allocator even when the `Box<T>`
didn't actually contain an allocation. Now the reference count for the
closure is stored on the JS object rather than in Rust.

Some more advanced tests were added along the way to ensure that
functionality didn't regress, and otherwise the calling convention for
`Closure` changed a good deal but should still be the same user-facing.
The primary change was that the reference count reaching zero may cause
JS to need to run the destructor. It simply returns this information in
`Drop for Closure` and otherwise when calling it now also retains a
function pointer that runs the destructor.

Closes #874
2018-09-29 07:00:53 -07:00
230b8f61fd Fix WebIDL mixin attributes on Window
Previously the "container attribute" were set to the attributes of the
mixin itself, but we want the container attributes to be that of the
type which includes the mixin (like `Window`) as those attributes
contain information about whether or not bindings are `structural`.

The end result with this is that the `structural` tag is now used for
properties on `Window`, correctly generating setters/getters.

Closes #904
2018-09-28 21:41:48 -07:00
0ac84c231a Merge pull request #906 from alexcrichton/polyfill
Implement a `polyfill` attribute for imports
2018-09-28 21:31:44 -07:00
10fce93c4e Merge pull request #907 from alexcrichton/catch-errors
Add `catch(console.error)` to all examples
2018-09-28 21:31:14 -07:00
bc36b6f84b Add catch(console.error) to all examples
Some examples have been failing to load in some browsers, and this
ensures that whenever the promise to load Rust code fails we log any
errors happening instead of accidentally failing silently.

This helped debug a bit in #897
2018-09-28 13:55:07 -07:00
3c14f7a6eb Implement a polyfill attribute for imports
Allow using imported APIs under alternative names, such as prefixed
names, for web APIs when the exact API differs across browsers.
2018-09-28 13:43:00 -07:00
11bcaf42d5 Merge pull request #902 from alexcrichton/target-docs
Add documentation about supported targets
2018-09-27 13:51:17 -07:00
7447c30ba4 Merge pull request #903 from alexcrichton/doc-constructors
Add more documentation to `web-sys` constructors
2018-09-27 13:51:07 -07:00
69ec889dc5 Merge pull request #900 from alexcrichton/fix-test
Escape HTML text in browser failure messages
2018-09-27 13:50:53 -07:00
a0c397d2be Merge pull request #901 from alexcrichton/inline-unit
Add `#[inline]` for `IntoWasmAbi for ()`
2018-09-27 13:50:38 -07:00
114176f8b8 Add documentation about supported targets
* Main target is wasm32-unknown-unknown
* All other targets work ok, but imports panic
* Emscripten explicitly not supported at this time

Closes #892
2018-09-27 13:39:23 -07:00
f3dd28e294 Add more documentation to web-sys constructors
Closes #899
2018-09-27 12:35:46 -07:00
5a0ac2d37c Add #[inline] for IntoWasmAbi for ()
No need for it to not be inlined, it literally compiles to nothing!
2018-09-27 12:22:05 -07:00
fd1a00db76 Escape HTML text in browser failure messages
When browser tests fail we're appending to `innerHTML`, which means that
we need to escape some characters for all to show up!

Closes #898
2018-09-27 12:21:41 -07:00