Commit Graph

2233 Commits

Author SHA1 Message Date
153505f6c7 Document workaround for avoiding duplicated symbols when using wasm-bindgen-test from git 2018-08-08 20:28:49 +02:00
9104bf87e9 backend: Rename ast::ImportType::name to ast::ImportType::rust_name
This helps pave the way for adding a js_name, and makes it more clear which name
this is.
2018-08-07 16:09:38 -07:00
5b935526ff Merge pull request #640 from alexcrichton/jscast
Implement RFC #2 - casting hierarchy between JS values
2018-08-07 17:26:37 -05:00
43636977ae Merge pull request #664 from fitzgen/guide-serde-arbitrary-data
Guide serde arbitrary data
2018-08-07 14:48:45 -07:00
81c893b5d8 Merge pull request #663 from fitzgen/guide-closures-and-attributes
guide: add `indexing_{getter,setter,deleter}` attribute pages
2018-08-07 14:44:25 -07:00
1d92784e07 guide: add indexing_{getter,setter,deleter} attribute page 2018-08-07 14:42:13 -07:00
2e7620e014 guide: Polish Serializing + Deserializing into/from JsValue with Serde section 2018-08-07 14:25:30 -07:00
676611020e guide: Delete "Feature Reference" page
We now have a rather large section for feature reference, and I don't think
there is anything in this page that isn't covered elsewhere and in more detail
anymore.
2018-08-07 14:25:30 -07:00
bd15db40a0 Rebase fallout and review comments 2018-08-07 13:24:48 -07:00
37db88ebfa Implement #[wasm_bindgen(extends = ...)]
This commit implements the `extends` attribute for `#[wasm_bindgen]` to
statically draw the inheritance hierarchy in the generated bindings, generating
appropriate `AsRef`, `AsMut`, and `From` implementations.
2018-08-07 13:04:11 -07:00
11553a1af2 Implement JsCast for all imported types
This commit implements the `JsCast` trait automatically for all imported types
in `#[wasm_bindgen] extern { ... }` blocks. The main change here was to generate
an `instanceof` shim for all imported types in case it's needed.

All imported types now also implement `AsRef<JsValue>` and `AsMut<JsValue>`
2018-08-07 12:59:51 -07:00
f3f11ed8eb Clean up generated code for imported types
Group all the generated impls in a `const` block so we can use `use` without
clashing with the outside scope.
2018-08-07 12:59:51 -07:00
bea07abd0f Add a JsCast trait specified in [RFC 2]
[RFC 2]: https://github.com/rustwasm/rfcs/pull/2
2018-08-07 12:59:51 -07:00
9b65e57585 Merge pull request #662 from alexcrichton/consume-ret-string
Fix consuming a struct and returning a slice
2018-08-07 11:16:14 -07:00
6d4d9150cb Merge pull request #661 from fitzgen/guide-closures-and-attributes
Guide: closures and attributes
2018-08-07 11:15:51 -07:00
9d291187c5 guide: Fix alphabetizing of attributes 2018-08-07 11:14:00 -07:00
451a2a8118 guide: Add small intro to Rust export attributes section 2018-08-07 11:13:41 -07:00
e22ccb4d5d guide: Clean up passing rust closures to JS section; add passing JS closures to rust section 2018-08-07 11:09:19 -07:00
33520d4828 guide: add exhuastive reference docs for #[wasm_bindgen] attributes 2018-08-07 11:09:19 -07:00
0d18c8c397 Fix consuming a struct and returning a slice
This came up in a [recent comment][1] and it turns out we're accidentally
generating two `const ptr = ...` declarations, invalid JS! While Node doesn't
catch this it looks like firefox does.

[1]: https://github.com/rustwasm/wasm-bindgen/issues/329#issuecomment-411082013
2018-08-07 08:46:38 -07:00
b6a6dee7f1 Merge pull request #652 from afdw/master
Add support for getters, setters and deleters
2018-08-06 21:43:53 -05:00
86b5ba6431 Add missing indexing words 2018-08-07 02:45:08 +03:00
f54d51e045 Add documentation 2018-08-07 01:49:45 +03:00
d396c168a5 Fix comments in parser 2018-08-07 00:48:03 +03:00
3ad5493d23 Add a test for webidl 2018-08-07 00:42:47 +03:00
e70c9015ff Rename special to indexing 2018-08-07 00:06:04 +03:00
ef3f086102 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	crates/webidl/src/first_pass.rs
#	crates/webidl/src/lib.rs
#	crates/webidl/src/util.rs
2018-08-06 23:37:12 +03:00
b2977a4262 Delete wasm-bindgen-test-project-builder
No more tests use it!
2018-08-06 11:48:34 -07:00
c82c8e7acb Move comments test to wasm 2018-08-06 11:46:23 -07:00
1dd8bc078e Delete typescript test
We'll soon no longer have a great way to test this in the repository, but the
support has effectively never regressed so far. Let's rely on user-facing bug
reports for now and otherwise we can add this back in later if necessary.
2018-08-06 11:39:30 -07:00
2ee4ab362d Remove a stray file 2018-08-06 11:31:24 -07:00
d5b81595ec Remove support for the version attribute
First added in #161 this never ended up panning out, so let's remove the
experimental suport which isn't actually used by anything today and hold off on
any other changes until an RFC happens.
2018-08-06 13:30:28 -05:00
7f8d510f3d Move unused_imports_not_generated test to wasm 2018-08-06 11:28:08 -07:00
0fbdc7682c Remove stray file no longer needed 2018-08-06 11:10:19 -07:00
0a2399a7f1 Migrate #![no_std] tests to wasm
This required getting a little creative in a few places, but otherwise these
tests shouldn't need the test builder any more.
2018-08-06 11:08:35 -07:00
005f7eb9fa Migrate rest of dependencies test to wasm 2018-08-06 10:42:08 -07:00
28036db262 Move node test over to wasm 2018-08-06 10:06:45 -07:00
59d4c5a06a Remove dependencies_work test
The fact that `web-sys` works at all obviates the need for this test!
2018-08-06 10:00:01 -07:00
d978878d86 Remove add_headless test
We've got tons of other headless tests, no need for this particular one to stick
around!
2018-08-06 09:59:05 -07:00
6edf063c94 Allow disabling --debug in wasm-bindgen-test-runner
Afterwards remove the `non_debug` test as we're running the entire test suite in
non-debug mode!
2018-08-06 09:57:41 -07:00
3c52a82213 Remove unused import 2018-08-06 09:55:45 -07:00
c83e498f52 Move non-wasm test to an actual non-wasm test 2018-08-06 09:55:20 -07:00
8513858973 Move $-renaming tests to wasm 2018-08-06 09:51:29 -07:00
aeca24c7ab Add ArrayBuffer.prototype.byteLength to js-sys 2018-08-06 11:44:24 -05:00
0bdb31d41e Migrate the serde-serialize test to wasm 2018-08-06 09:43:55 -07:00
4661588171 Move most of the "simple" test to the wasm suite 2018-08-06 09:21:41 -07:00
f96fcf78a1 Explicitly ignore some extended attributes
Cut down on generated warnings by explicitly ignoring attributes which it looks
like we don't need to handle at all.
2018-08-06 10:56:12 -05:00
72fff9c43e Ignore implements items explicitly
No need to warn about them because there's not much to handle with them anyway!
2018-08-06 10:56:12 -05:00
73e89fc59b Add bindings for RegExp.$1-$9 2018-08-06 10:41:06 -05:00
e35295d376 Migrate from the webidl crate to weedle
This commit migrates the `wasm-bindgen-webidl` crate from the `webidl` parser to
`weedle`. The main rationale for doing this is that `webidl` depends on
`lalrpop`, which is quite a large dependency and takes a good deal of time to
compile. The `weedle` crate, however, depends on `nom` and is much faster to
compile.

Almost all translations were pretty straightforward. Some abstractions changed
and/or were introduced in this commit when moving to `weedle` like the
`ToSynType` trait, but otherwise the generated bindings should be the same. It's
been verified that the `weedle`-generated bindings are exactly the same as the
`webidl`-generated bindings, with the one exception of `weedle` generates one
more method, `WebGpuCommandEncoder::transition_buffer`. It's not clear currently
why `webidl` didn't generate this method, as its [idl] is pretty straightforward!

This commit is using a [fork] of `weedle` currently which has a number of fixes
for parsing our WebIDL, although all the fixes are quite minor!

Closes #620

[idl]: d66b834afd/crates/web-sys/webidls/enabled/WebGPU.webidl (L499)
[fork]: https://github.com/alexcrichton/weedle/tree/fix-for-web-sys
2018-08-06 10:27:03 -05:00