Commit Graph

92 Commits

Author SHA1 Message Date
457efc0f31 Implement support for WebIDL Callback types
This commit adds support for the WebIDL `Callback` type by translating all
callbacks to the `js_sys::Function` type. This will enable passing raw JS values
into callbacks as well as Rust valus using the `Closure` type.

This commit doesn't currently implement "callback interfaces" in WebIDL, that's
left for a follow-up commit.
2018-09-06 19:50:46 -07:00
269c491380 Gate web-sys APIs on activated features (#790)
* Gate `web-sys` APIs on activated features

Currently the compile times of `web-sys` are unfortunately prohibitive,
increasing the barrier to using it. This commit updates the crate to instead
have all APIs gated by a set of Cargo features which affect what bindings are
generated at compile time (and which are then compiled by rustc). It's
significantly faster to activate only a handful of features vs all thousand of
them!

A magical env var is added to print the list of all features that should be
generated, and then necessary logic is added to ferry features from the build
script to the webidl crate which then uses that as a filter to remove items
after parsing. Currently parsing is pretty speedy so we'll unconditionally parse
all WebIDL files, but this may change in the future!

For now this will make the `web-sys` crate a bit less ergonomic to use as lots
of features will need to be specified, but it should make it much more
approachable in terms of first-user experience with compile times.

* Fix AppVeyor testing web-sys

* FIx a typo

* Udpate feature listings from rebase conflicts

* Add some crate docs and such
2018-09-05 12:55:30 -07:00
7d5d845608 Add docs and remove typecheck from variadic attribute 2018-09-01 13:55:35 +01:00
e290c75c32 Add @afdw to the team! \o/ 2018-08-30 12:59:34 -07:00
69a831423b Update publishing instructions
We've got a publish script now!
2018-08-27 13:51:47 -07:00
d4297ad2d3 Remove use_extern_macros features
This has now been stabilized!
2018-08-19 14:33:01 -07:00
a5a8fd747d guide: Split supported types section up into many sub sections 2018-08-14 18:01:17 -07:00
b1e3101fd4 guide: Add examples for number slices 2018-08-14 17:42:47 -07:00
fea41b4a87 guide: also allow Option<bool> 2018-08-14 17:34:16 -07:00
9c9e53485a guide: Add examples of boxed number slices 2018-08-14 17:15:01 -07:00
8043baac69 guide: Add examples for working with numbers to types section 2018-08-14 15:45:25 -07:00
602b63c1b0 guide: Add working with pointers example to types section 2018-08-14 15:24:43 -07:00
46f1719524 Merge pull request #696 from fitzgen/more-examples-for-guide
More examples for guide
2018-08-13 18:34:26 -06:00
d1b2299340 guide: Add Box<[JsValue]> example to supported types section 2018-08-13 17:08:18 -07:00
60307e81f9 guide: Add JsValue example to supported types section 2018-08-13 16:57:29 -07:00
fedd1a5440 guide: Add bool example to supported types section 2018-08-13 16:55:05 -07:00
975a122d6d guide: Add a char example to the supported types section 2018-08-13 16:24:39 -07:00
74dc8874e1 guide: add String example usage to supported types 2018-08-13 16:20:25 -07:00
fa72afe286 guide: Add str examples to supported types section 2018-08-13 16:12:58 -07:00
8e19645006 guide: Add exported rust type examples to reference 2018-08-13 16:03:02 -07:00
485d377594 guide: Add a reference section for Promises and Futures 2018-08-13 15:44:28 -07:00
36fe4c23dc Merge pull request #678 from derekdreery/webidl_namespace_support
Add support webidl namespaces.
2018-08-12 17:41:54 -07:00
ea05235985 Fix docs about testing webidl 2018-08-12 21:28:59 +01:00
e87498e939 guide: Start adding example usage to "supported types" section 2018-08-10 16:56:40 -07:00
cc76963bad guide: typo in arbitrary data with serde 2018-08-09 17:46:38 +02:00
2fcc74e226 guide: refactor and update testing instructions for contributing 2018-08-08 15:33:56 -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
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
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
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
b2977a4262 Delete wasm-bindgen-test-project-builder
No more tests use it!
2018-08-06 11:48:34 -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
2b8e092f78 guide: Note that wasm-pack is preferred over using the wasm-bindgen CLI directly 2018-08-03 22:35:19 -05:00
9b87e0c0b0 guide: clean up introduction to the supported types table 2018-08-03 22:35:19 -05:00
1e1188d9e5 guide: Add String to "Supported Types" reference 2018-08-03 22:35:19 -05:00
93b3216014 guide: Add imported and exported types to "supported types" reference 2018-08-03 22:35:19 -05:00
536bf5e0d7 guide: Rename "Type Reference" section to "Supported Types" 2018-08-03 22:35:19 -05:00
9e03dba413 guide: Overhaul the CLI reference content
* Add missing documentation for a couple existing flags.

* Make each flag its own header, so it gets an anchor, and can be permalinked
  to.

* Streamline some content and descriptions.
2018-08-03 22:35:19 -05:00
2b83f6aa9b guide: Clean up title and URL of CLI reference section 2018-08-03 22:35:19 -05:00
39e576d0be guide: Organize docs into "Whirlwind Tour" and "Reference" sections
First part of #616
2018-08-03 15:16:22 -07:00