Commit Graph

2135 Commits

Author SHA1 Message Date
Alex Crichton
cf1e1e0dc1
Merge pull request #1214 from alexcrichton/enum-option
Support `Option` with custom enums in JS
2019-01-29 09:57:51 -06:00
Alex Crichton
5fbcad48d0
Merge pull request #1215 from eminence/webaudio_fix
Fix webaudio example
2019-01-29 09:04:56 -06:00
Andrew Chin
153acdb4fd Fix webaudio example
The rust set_* functions except numbers, not strings.
2019-01-28 23:54:40 -05:00
Alex Crichton
9224455077 Support Option with custom enums in JS
Find a hole automatically to use a sentinel value for `None`, and then
just wire everything up!

Closes #1198
2019-01-28 14:27:57 -08:00
Alex Crichton
03e52c7045
Merge pull request #1212 from Ivshti/master
browser-support: warn about the performance hit of the polyfill
2019-01-28 14:30:07 -06:00
Alex Crichton
3e5280243f
Merge pull request #1208 from alexcrichton/expand-recursive
Fix conditional #[wasm_bindgen] in impls
2019-01-28 14:29:26 -06:00
Alex Crichton
c35d6f4b0a Fix conditional #[wasm_bindgen] in impls
Reported in #1191 the fix requires us to get a bit creative I think. The
general gist is that a block like this:

    #[wasm_bindgen]
    impl Foo {
        pub fn foo() {}
    }

was previously expanded all in one go. Now, however, it's expanded into:

    impl Foo {
        #[__wasm_bindgen_class_marker(Foo = "Foo")]
        pub fn foo() {}
    }

    // goop generated by orginal #[wasm_bindgen]

This method of expansion takes advantage of rustc's recursive expansion
feature. It also allows us to expand `impl` blocks and allow inner items
to not be fully expanded yet, such as still having `#[cfg]` attributes
(like in the original bug report).

We use theinternal `__wasm_bindgen_class_marker` to indicate that we're
parsing an `ImplItemMethod` unconditionally, and then generation
proceeds as usual. The only final catch is that when we're expanding in
an `impl` block we have to generate tokens for the `Program`
(wasm-bindgen injected goop like the custom section) inside the body
of the function itself instead of next to it. Otherwise we'd get syntax
errors inside of impl blocks!

Closes #1191
2019-01-28 12:29:01 -08:00
Ivo Georgiev
b3e97a7e45
browser-support: warn about the performance hit of using the polyfill~ 2019-01-28 20:55:11 +01:00
Alex Crichton
c56dff8ede
Merge pull request #1204 from chocolatkey/patch-1
minor typo in js-sys lib.rs
2019-01-25 08:05:00 -07:00
Henry
2a6d2004e1
minor typo in js-sys lib.rs 2019-01-24 15:35:21 -08:00
Alex Crichton
f8dabfcae9
Merge pull request #1201 from rhysd/fix-optional-value-types
Add '| undefined' to optional types in generated .d.ts
2019-01-23 09:52:40 -07:00
rhysd
3300301b3f add '| undefined' to optional types in generated .d.ts 2019-01-23 20:49:52 +09:00
Alex Crichton
78c4075e40 Bump to 0.2.33 2019-01-18 15:32:17 -08:00
dependabot[bot]
b8c91ab0d3 Update @wasm-tool/wasm-pack-plugin requirement from 0.2.0 to 0.2.1
Updates the requirements on [@wasm-tool/wasm-pack-plugin](https://github.com/wasm-tool/wasm-pack-plugin) to permit the latest version.
- [Release notes](https://github.com/wasm-tool/wasm-pack-plugin/releases)
- [Commits](https://github.com/wasm-tool/wasm-pack-plugin/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-18 08:35:22 +00:00
Alex Crichton
71ed305455
Merge pull request #1159 from alexcrichton/webpack
Convert all examples to using wasm-pack
2019-01-17 21:13:50 -08:00
Alex Crichton
ba732a8a72
Merge pull request #1161 from derekdreery/debug_output
Better output from `impl Debug for JsValue`.
2019-01-17 16:52:13 -08:00
Alex Crichton
d3057c7c42
Merge pull request #1193 from fitzgen/ci-docs-on-stable
ci: build docs on stable
2019-01-17 16:51:57 -08:00
Nick Fitzgerald
222d5ca00d ci: build docs on stable
This avoids https://github.com/rust-lang/rust/issues/57628 and also generally
makes sense since wasm-bindgen buils on stable.
2019-01-17 14:56:52 -08:00
Richard Dodd (dodj)
f8680a0c10
remove is array function 2019-01-17 21:08:32 +00:00
Richard Dodd (dodj)
867b13b65e
remove array check 2019-01-17 21:07:23 +00:00
Alex Crichton
32c611d16d Convert all examples to using wasm-pack
This commit migrates all our examples to using `wasm-pack build` to
compile their code and run `wasm-bindgen`. This should make it a bit
easier to understand the examples as there's less to follow during the
build step.

Webpack projects are all using `@wasm-tool/wasm-pack-plugin` as well so
the build step is simple `npm run serve`. Other examples which retain
`build.sh` are just using `wasm-pack build` now
2019-01-17 08:37:32 -08:00
Richard Dodd (dodj)
7fe76061af
Update node to support Array.values in tests. 2019-01-17 12:59:16 +00:00
Nick Fitzgerald
d79ca22234
Merge pull request #1190 from sagan-software/issue-1186
js-sys: JSON::stringify_with_replacer[_and_space]
2019-01-16 16:38:59 -08:00
Liam Curry
6226e6959f js-sys: JSON::stringify_with_replacer[_and_space]
This commit adds two new externs for `JSON.stringify`:
`JSON::stringify_with_replacer` and
`JSON::stringify_with_replacer_and_space`.

Fixes #1186
2019-01-16 18:03:03 -05:00
Alex Crichton
50d2422309
Merge pull request #1188 from fitzgen/bump-to-0.2.32
Bump to 0.2.32
2019-01-16 13:17:42 -08:00
Nick Fitzgerald
31fdede9fc Bump to 0.2.32 2019-01-16 13:11:13 -08:00
Nick Fitzgerald
86ef3f75dd Add 0.2.32 entry to CHANGELOG.md 2019-01-16 13:06:17 -08:00
Richard Dodd
b0906fddba Better recognition of error type. 2019-01-16 15:36:13 +00:00
Richard Dodd
5f2ba3f98e Add better support for errors. 2019-01-16 10:46:26 +00:00
Richard Dodd
5bffc28631 Add a proper test.
And fix loads of bugs.
2019-01-16 10:16:29 +00:00
Richard Dodd
f3dd38690a Remove Array.isArray test. 2019-01-16 10:16:29 +00:00
Richard Dodd
fab9d1dff6 Resolve what to do with no_std. 2019-01-16 10:16:29 +00:00
Richard Dodd
b60d82a531 Implement suggestings from @fitzgen. 2019-01-16 10:16:29 +00:00
Richard Dodd
72765757ef Fix tests again. 2019-01-16 10:16:29 +00:00
Richard Dodd
36cb50445f Make clear it's a JsValue. 2019-01-16 10:16:29 +00:00
Richard Dodd
126efd5a95 Redo as js function + fix tests 2019-01-16 10:16:29 +00:00
Richard Dodd
5b51d279b4 Use toString where JSON.stringify didn't work 2019-01-16 10:16:29 +00:00
Richard Dodd
34bab511e5 Use JSON serialization to get better debug printouts. 2019-01-16 10:16:29 +00:00
Alex Crichton
0d3f9eb02b
Merge pull request #1184 from fitzgen/issue-1183
wasm-bindgen-test: Capture more console logging methods' output
2019-01-15 14:25:46 -08:00
Nick Fitzgerald
41eefa7425 wasm-bindgen-test: Capture more console logging methods' output
Fixes #1183
2019-01-15 14:05:22 -08:00
Alex Crichton
d5b6c5270b
Merge pull request #1181 from rhysd/fix-dts-struct-fields
Fix missing semicolons at generated struct fields in .d.ts
2019-01-15 09:24:16 -08:00
rhysd
8d6839878e fix missing semicolons to struct fields in .d.ts
TypeScript class property requires semicolon at the end:
    https://www.typescriptlang.org/docs/handbook/classes.html
2019-01-15 17:45:11 +09:00
Alex Crichton
715b4f4ced
Merge pull request #1179 from alexcrichton/catch-all-errors
In debug mode log all imported uncaught exceptions
2019-01-14 17:28:15 -08:00
Alex Crichton
f2f11a01a2 In debug mode log all imported uncaught exceptions
This commit updates the `--debug` output of `wasm-bindgen` from the CLI
to catch all JS exceptions from imported functions, log such, and then
rethrow. It's hoped that this can be used when necessary to learn more
information about thrown exceptions and where an uncaught exception
could be causing issues with Rust code.

Closes #1176
2019-01-14 15:59:31 -08:00
Alex Crichton
5c04427382
Merge pull request #1175 from alexcrichton/internal-consistency
Fix an issue where closure rewriting required class internals
2019-01-14 15:53:40 -08:00
Alex Crichton
20e871f676 Fix an issue where closure rewriting required class internals
Surfaced through previous sanity-checking commits, this reorders some
internal operations to...

Closes #1174
2019-01-14 15:53:29 -08:00
Alex Crichton
b21489368c Ensure internal exported_classes map is consistent
Throw it in an `Option` and then `take()` it when we consume it to
ensure that future calls to insert data into it panic instead of
producing inconsistent JS.
2019-01-14 15:53:29 -08:00
Alex Crichton
1526d18ed6
Merge pull request #1178 from fitzgen/issue-1167
Some wasm-bindgen-test runtime fixes
2019-01-14 15:44:37 -08:00
Nick Fitzgerald
f2cbbb83f3 wasm-bindgen-test: ignore example code that is not intended to compile
This was making `cargo test --all` fail.
2019-01-14 14:53:46 -08:00
Nick Fitzgerald
56c4385f42 wasm-bindgen-test: Rename console_*_redirect to on_console_*
Since we are no longer redirecting all console logs, and are instead just
observing them.
2019-01-14 14:51:28 -08:00