Commit Graph

20 Commits

Author SHA1 Message Date
Nick Fitzgerald
f2f2d7231a
Create the web-sys crate mechanically from WebIDL (#409)
* Create a new `web-sys` crate

This will eventually contain all the WebIDL-generated bindings to Web APIs.

* ci: Test the new `web-sys` crate in CI

* web-sys: Add a small README

* web-sys: Vendor all the WebIDL files from mozilla-central

* backend: Add a pass to remove AST items that use undefined imports

This is necessary for the WebIDL frontend, which can't translate many WebIDL
constructs into equivalent wasm-bindgen AST things yet. It lets us make
incremental progress: we can generate bindings to methods we can support right
now even though there might be methods on the same interface that we can't
support yet.

* webidl: Add a bunch of missing semicolons

* webidl: Make parsing private

It was only `pub` so that we could test it, but we ended up moving towards
integration tests rather than unit tests that assert particular ASTs are parsed
from WebIDL files.

* webidl: Remove uses of undefined import types

* test-project-builder: Build projects in "very verbose" mode

This helps for debugging failing WebIDL-related tests.

* test-project-builder: Add more profiling timers

* test-project-builder: Detect when webpack-dev-server fails

Instead of going into an infinite loop, detect when webpack-dev-server fails to
start up and early exit the test.

* webidl: Specify version for dev-dependency on wasm-bindgen-backend

Instead of only a relative path.

* guide: Add section about contributing to `web-sys`

* WIP enable Event.webidl

Still need to fix and finish the test.

* Update expected webidl output

* Start out a test's status as incomplete

That way if we don't fill it in the error message doesn't look quite so bizarre

* Fix onerror function in headless mode

Otherwise we don't see any output!

* Fix package.json/node_modules handling in project generation

Make sure these are looked up in the git project root rather than the crate root

* Avoid logging body text

This was meant for debugging and is otherwise pretty noisy

* Fix a relative path

* More expected test fixes

* Fix a typo

* test-project-builder: Allow asynchronous tests

* webidl: Convert [Unforgeable] attributes into `#[wasm_bindgen(structural)]`

Fixes #432

* test-project-builder: Print generated WebIDL bindings for debugging purposes

Helps debug bad WebIDL bindings generation inside tests.

* When we can't find a descriptor, say which one can't be found

This helps when debugging things that need to become structural.

* web-sys: Test bindings for Event

* ci: Use `--manifest-path dir` instead of `cd dir && ...`

* web-sys: Just move .webidl files isntead of symlinking to enable them

* tests: Polyfill Array.prototype.values for older browsers in CI

* test-project-builder: Don't panic on poisoned headless test mutex

We only use it to serialize headless tests so that we don't try to bind the port
concurrently. Its OK to run another headless test if an earlier one panicked.

* JsValue: Add {is,as}_{object,function} methods

Allows dynamically casting values to `js::Object` and `js::Function`.

* tidy: Fix whitespace and missing semicolons

* Allow for dynamic feature detection of methods

If we create bindings to a method that doesn't exist in this implementation,
then it shouldn't fail until if/when we actually try and invoke that missing
method.

* tests: Do feature detection in Array.prototype.values test

* Add JsValue::{is_string, as_js_string} methods

And document all the cast/convert/check methods for js value.

* eslint: allow backtick string literals

* Only generate a fallback import function for non-structural imports
2018-07-09 16:35:25 -07:00
frankhassanbad
0b3a17685f Changed https to http and make a link to it for ease of read 2018-07-07 14:38:29 -06:00
Marcin Baraniecki
d179503a63 uses (JS) const for stack and slab declarations (#415) 2018-07-07 13:36:05 -05:00
limira
b790856c6e Add [hello-online] (#413) 2018-07-07 11:23:01 -05:00
Jannik Keye
175319c1e0 doc: add reference document (#242) (#383)
* doc: add reference document

* fix: link reference doc in SUMMARY.md

* fix(reference.md): collapse related rows
2018-07-06 11:25:10 -05:00
Nick Fitzgerald
59b3b4dc8d Headless browser testing infrastructure (#371)
* tests: Add newlines between impl methods for Project

* WIP headless browser testing with geckodriver and selenium

* Get some more of headless testing working

* Extract `console.log` invocations and print them from the console
* Ship the error message from an exception from the browser back to the command
  line
* Cleanup some "if headless" and `else` branches
* Fix killing `webpack-dev-server` in the background with `--watch-stdin`

* Fix path appending logic for Windows

* Always log logs/errors in headless mode

* Install Firefox on Travis

* Don't duplicate full test suite with `yarn`

No need to run that many tests, we should be able to get by with a smoke test
that it just works.

* headless tests: Move `run-headless.js` to its own file and `include_str!` it

* Run `rustfmt` on `tests/all/main.rs`

* guide: Add note about headless browser tests and configuration

* test: Log WASM_BINDGEN_FIREFOX_BIN_PATH in run-headless.js

* TEMP only run add_headless test in CI

* Add more logging to headless testing

* Allow headless tests to run for 60 seconds before timeout

* TEMP add logging to add_headless test

* Fix headless browser tests

* Another attempt to fix Travis

* More attempts at debugging

* Fix more merge conflicts

* Touch up an error message

* Fixup travis again

* Enable all travis tests again

* Test everything on AppVeyor
2018-07-05 09:22:01 -05:00
Corey Farwell
ad72ea54a9 Fix typo in rust-type-conversions.md. (#390) 2018-07-04 13:53:20 -05:00
Marcin Baraniecki
3092beb4e4 fixes team members table layout (#379) 2018-07-03 16:55:22 -05:00
Nick Fitzgerald
3e77003176 Add @belfz to the team! \o/ (#377) 2018-07-03 12:14:49 -05:00
Nick Fitzgerald
d27f5e75c8
Merge pull request #370 from rustwasm/mdbook-design
Add `design.md` to the online mdbook
2018-07-03 09:50:18 -07:00
konstin
66096804ce Fix the constructor explanation in the guide (#372) 2018-07-03 09:24:43 -05:00
Alex Crichton
b171629ed1 Add design.md to the online mdbook
At the same time split it up into some more digestable sections
2018-07-02 18:49:47 -07:00
Nick Fitzgerald
d8a98755e2 Add @sendilkumarn to the team! \o/ (#352) 2018-06-28 17:00:33 -05:00
Nick Fitzgerald
9dd950a1cb Add @jonathan-s to the team! \o/ 2018-06-28 09:53:36 -07:00
Nick Fitzgerald
d3201a11af guide: Add note about static_method_of attribute to design doc 2018-06-27 14:58:53 -07:00
R. Andrew Ohana
6ef817b350
Merge pull request #283 from robertDurst/basic-usage-md
Basic Usage md clarification
2018-06-21 00:14:13 -07:00
robertdurst
652dab0abf Basic Usage md clarification 2018-06-20 21:27:30 -07:00
Jonathan Sundqvist
7275b6f751 Add missing docs to make cargo test work 2018-06-20 19:28:13 +02:00
Nick Fitzgerald
4cf301985c guide: Add a contributing section and move DESIGN.md under it
Also adds a team section where we enumerate the folks on the `wasm-bindgen` team
and who can review pull requests
2018-06-19 12:05:52 -07:00
Nick Fitzgerald
7c9973d9d1 guide: Add the wasm-bindgen guide
Essentially split up the monolithic README.md into an `mdbook`.
2018-06-19 12:05:27 -07:00