Commit Graph

197 Commits

Author SHA1 Message Date
eb9a6524b9 Bump to 0.2.2 2018-04-13 07:50:24 -07:00
8854936599 Tweak initialization with --no-modules
* Have the global `wasm_bindgen` variable be a function which runs
  initialization rather than exporting an `init` function.
* Save off the wasm object on `wasm_bindgen.wasm` so the memory can be accessed
* Tidy up the code slightly
2018-04-13 07:44:35 -07:00
98016324f7 Merge branch 'umd' of https://github.com/csharad/wasm-bindgen 2018-04-13 07:34:27 -07:00
85c9f2319c Expose on window.wasm_bindgen 2018-04-13 14:25:27 +05:45
ffdb8a6a32 Simplified the preamble 2018-04-12 10:31:13 +05:45
b9b8756cd0 Demangle Rust symbols by default 2018-04-11 11:43:18 -07:00
aa6487b6f1 panic when modules used 2018-04-11 14:22:20 +05:45
8c935d5d94 Change flag to --no-modules 2018-04-11 13:59:58 +05:45
0aef97215c Call fs.readFileSync with __dirname
Node's fs APIs resolve relative paths relative to the current working directory:

https://nodejs.org/api/fs.html#fs_file_paths

This creates a problem if you try to require the wasm-bindgen-generated
JavaScript from a different directory. For example, if you have

  build/foo.js
  build/foo_bg.js
  build/foo_bg.wasm

and another script, script/index.js, that requires build/foo.js. We can instead
use __dirname to get the correct path to the file.
2018-04-09 17:38:22 -07:00
656d69816d Move all tests to the same suite
Nowadays the compile times are mitigated with incremental compilation and
otherwise it's much more ergonomic to run only one test if they're all in the
same suite.
2018-04-09 15:32:06 -07:00
60ac57331b Bump to 0.2.1 2018-04-09 15:18:39 -07:00
a3e5485b86 Add examples/documentation for closures 2018-04-09 14:34:21 -07:00
66bdd92fa2 More aggressively gc module
As soon as we've removed unneeded exports immediately run a gc pass to ensure
that we don't bind functions in JS that don't actually end up getting needed.
2018-04-09 14:34:21 -07:00
f7f0d578e7 Support long-lived closures
Docs coming soon!
2018-04-09 14:34:21 -07:00
28d6c1bc12 Support stack closures with up to 7 arguments 2018-04-09 14:34:21 -07:00
c0cad447c1 Initial support for closures
This commit starts wasm-bindgen down the path of supporting closures. We
discussed this at the recent Rust All-Hands but I ended up needing to pretty
significantly scale back the ambitions of what closures are supported. This
commit is just the initial support and provides only a small amount of support
but will hopefully provide a good basis for future implementations.

Specifically this commit adds support for passing `&Fn(...)` to an *imported
function*, but nothing elese. The `&Fn` type can have any lifetime and the JS
object is invalidated as soon as the import returns. The arguments and return
value of `Fn` must currently implement the `WasmAbi` trait, aka they can't
require any conversions like strings/types/etc.

I'd like to soon expand this to `&mut FnMut` as well as `'static` closures that
can be passed around for a long time in JS, but for now I'm putting that off
until later. I'm not currently sure how to implement richer argument types, but
hopefully that can be figured out at some point!
2018-04-09 14:34:21 -07:00
a699455f03 Walk the prototype chain looking for descriptors
Looks like this breakage may occur in some scenarios so let's try to
future-proof ourselves!

Closes #109
2018-04-09 06:16:41 -07:00
ee1e3abd45 Am an idiot 2018-04-07 13:22:03 +05:45
b9192592a9 Updated docopts 2018-04-07 13:17:56 +05:45
e8f4b7ed86 Skip window assertions 2018-04-07 13:08:57 +05:45
0bd8713bd5 Dropped node support in umd -> amd 2018-04-07 13:06:36 +05:45
2b9af53030 wasm is compiled, mod in uncompiled 2018-04-06 12:59:07 +05:45
1a428d69da {global} not referenced 2018-04-05 20:30:58 +05:45
2877d0bdb6 UMD import added 2018-04-05 19:50:26 +05:45
3a83b02de0 Added umd switch 2018-04-04 20:06:53 +05:45
9723fdd69b Merge pull request #100 from sendilkumarn/remove-coder-func
Reduce the JS file size and optimizing encoder and decoder functions
2018-04-04 08:46:36 -05:00
64d7c8d082 Update lib.rs 2018-04-04 11:27:27 +02:00
9421edaab5 add missed out TextEncoder 2018-04-04 11:22:34 +02:00
6d5afbb3d2 reduce the js file generated code
remove node test for browser test

update usages

revert test-support changes
2018-04-04 11:22:32 +02:00
0d1759abd5 Add description to backend crate 2018-04-03 14:02:04 -07:00
de3a7e3242 Remove nodejs-checking logic from math exports
Instead create a temporary vector which is used to later invoke the generic
`export` function
2018-04-03 13:29:26 -07:00
62e9f580d0 Use Context::export in write_classes
No need to doubly check for `nodejs`
2018-04-03 13:25:10 -07:00
23f6049619 Fixup various refactoring issues 2018-04-03 13:20:56 -07:00
7f614c3c3a Reduce node/browser duplication
Centralize the export of a function to one location to reduce duplication in
various other locations checking whether Node is being targeted or not.
2018-04-03 13:12:28 -07:00
cc11505dc8 Remove an unused unsafe block 2018-04-03 12:53:24 -07:00
455e86ef6d Merge branch 'node-math' of https://github.com/ashleygwilliams/wasm-bindgen 2018-04-03 12:53:15 -07:00
1ff9ccf072 Tighten up getStringFromWasm a bit
no need for some extra locals here
2018-04-03 12:44:35 -07:00
978b5ada63 Tighten up passStringToWasm a bit
Only emit `throw` on debug mode primarily
2018-04-03 12:44:09 -07:00
f1e8e2bee0 Remove GLOBAL_ARGUMENT_CNT JS binding
This is easier to manage statically so no need to track it dynamically
2018-04-03 12:38:33 -07:00
a805e04a81 Track next_global at codegen time
No need to track it at runtime as we should statically know its value!
2018-04-03 12:24:35 -07:00
8e5f5d20fc Remove accidental double braces 2018-04-03 12:24:19 -07:00
76cc1ca295 Fix imports of TextEncoder/TextDecoder 2018-04-03 08:09:25 -07:00
30b1964255 Bump all crates to 0.2 2018-04-03 07:10:07 -07:00
bb2e0c205f Merge pull request #77 from dflemstr/wasm-construct-js-class
Add support for constructing JsValue instances generically
2018-04-03 16:08:30 +02:00
782378e7c0 Update dependencies 2018-04-03 07:07:14 -07:00
540ccfac9d Only generate JS class constructor export if import is needed 2018-04-03 11:28:25 +02:00
03433a0ef6 Update to recent WasmBoundary abi changes 2018-04-02 09:59:08 -07:00
73619b5d15 Add support for constructing JsValue instances generically 2018-04-02 09:59:01 -07:00
e6a483f906 Hurray for fun with hygiene! 2018-03-31 14:29:47 -07:00
f2254628dd Fix a typo 2018-03-31 14:26:00 -07:00