Commit Graph

39 Commits

Author SHA1 Message Date
Michael Hoffmann
f5f541337c Create bindings for RegExp (#580)
* Create bindings for RegExp

* Address review comments

- Split the constructor into two: `new` and `new_regexp`. This way we
  can write RegExp::new("foo", "g") rather than
  RegExp::new(&JsValue::from("foo"), "g").

- The js_name for the setter for lastIndex should be `lastIndex` and
  not `set_lastIndex`. But fixing this causes a panic. Remove the
  method for now.
2018-07-29 16:13:42 -07:00
Joel Gallant
01194558bf Adds Array.prototype.splice() to js-sys (#571) 2018-07-27 10:07:21 -07:00
Nick Fitzgerald
a204c8d4b7
Merge pull request #565 from fitzgen/js-sys-iterator-protocol
js-sys: Unify all iterators under one generic iterator type
2018-07-26 14:22:34 -07:00
Nick Fitzgerald
62de3bad67 js-sys: Unify all iterators under one generic iterator type
The JS iterator protocol uses duck typing and we don't need separate
ArrayIterator and SetIterator etc types, we can have a single iterator type for
the whole protocol.
2018-07-26 13:48:52 -07:00
Alex Crichton
41200743af Tweak js-sys tests to pass in Firefox
Turns out date parsing is slightly different there!
2018-07-25 16:55:11 -07:00
Nick Fitzgerald
64591ef403 Js sys use &str arguments (#555)
* js-sys: imports should take &str parameters instead of &JsString

* js-sys: Imports should take Option<&str> instead of Option<String>
2018-07-25 18:50:30 -05:00
Nick Fitzgerald
61fc8d2567 Js sys once over (#550)
* js-sys: Return `f64` instead of `Number`

* js-sys: remove trailing whitespace

* js-sys: Ensure that all imported types derive Clone and Debug

* js-sys: Imported functions should always take JS object arguments by-ref
2018-07-25 16:33:44 -05:00
Tyler Wilcock
cefe1681ab Implement Math.min() and Math.max() bindings (#542)
* Add Number.isNaN() binding

* Add binding for Math.hypot()

* Implement Math.min() and Math.max() bindings
2018-07-23 23:50:29 -05:00
Tyler Wilcock
5fddcf3868 Add Math.hypot binding (#538)
* Add Number.isNaN() binding

* Add binding for Math.hypot()
2018-07-23 09:11:03 -05:00
Marcin Baraniecki
de0ba29abc implements bindings for Object.is (#537)
* implements bindings for Object.is

* adds counterpart test cases for non-equal values
2018-07-22 12:42:10 -05:00
Alex Crichton
6679ddfefc Move final js-sys test to a headless suite
Hopefully this doesn't need to get too large over time!
2018-07-21 20:09:45 -07:00
Alex Crichton
59c04e26d4 Port Reflect tests to wasm 2018-07-21 20:07:55 -07:00
Alex Crichton
906cd7adcc Remove usage of wasm_import_module feature
This is now stabilized! Also tweak usage of it to the stable version.
2018-07-21 19:00:40 -07:00
Sendil Kumar
2ef4b74ca6 add unescape 2018-07-21 23:06:36 +02:00
Tyler Wilcock
b7acb0785d Add Number.isNaN() binding (#532) 2018-07-21 15:19:30 -05:00
Alex Crichton
2e5cc810c8 Migrate tests for global functions to wasm 2018-07-20 17:45:00 -07:00
Alex Crichton
5f87ed4cef Port WebAssembly tests to wasm 2018-07-20 17:09:50 -07:00
Alex Crichton
9f7eea1e75 Port WeakSet tests to wasm 2018-07-20 17:07:00 -07:00
Alex Crichton
1d1df09e60 Port WeakMap tests to wasm 2018-07-20 17:01:26 -07:00
Alex Crichton
b667cafb63 Port TypedArray tests to wasm 2018-07-20 16:31:29 -07:00
Alex Crichton
df3530a9c2 Port Symbol and SetIterator tests to wasm 2018-07-20 16:19:10 -07:00
Alex Crichton
54abca7344 Port Set tests to wasm 2018-07-20 15:44:15 -07:00
Alex Crichton
ad86c52b02 Port Proxy tests to wasm 2018-07-20 15:35:15 -07:00
Alex Crichton
01ff04d85c Port Object tests to wasm 2018-07-20 15:23:56 -07:00
Alex Crichton
fb6041cf3b Port Number tests to wasm 2018-07-20 14:35:44 -07:00
Alex Crichton
627ddcb192 Port Math tests to wasm 2018-07-20 14:21:29 -07:00
Alex Crichton
230f923fdb Port MapIterator tests to wasm 2018-07-20 13:57:18 -07:00
Alex Crichton
2c9a606c3d Port Map tests to wasm 2018-07-20 13:46:22 -07:00
Alex Crichton
f3e34d854d Port JsString tests to wasm 2018-07-20 13:35:46 -07:00
Alex Crichton
d76f619298 Port Intl tests to wasm 2018-07-20 13:00:44 -07:00
Alex Crichton
067de51e57 Port Generator tests to wasm 2018-07-20 12:56:32 -07:00
Alex Crichton
f3d4a20ec7 Change Function::apply to catch the result
We don't know whether it'll throw or not!
2018-07-20 12:44:21 -07:00
Alex Crichton
75215134a5 Migrate Function tests to wasm 2018-07-20 12:43:07 -07:00
Alex Crichton
20e9267775 Port Error tests to wasm 2018-07-20 12:21:41 -07:00
Alex Crichton
601b138296 Port Date tests to wasm 2018-07-20 12:07:41 -07:00
Alex Crichton
efd6b2abac Migrate Array tests to wasm-bindgen-test 2018-07-20 11:48:57 -07:00
Alex Crichton
f8d336d711
Add a test harness to directly execute wasm tests (#524)
* Add a test harness to directly execute wasm tests

This commits adds a few new crates and infrastructure to enable comands like:

    cargo test --target wasm32-unknown-unknown

The intention here is to make it as low-friction as possible to write wasm tests
and also have them execute in a reasonable amount of time. Eventually this is
also hopefully enough support to do things like headless testing!

For now though this is defintely MVP status rather than fully fleshed out.
There's some more information at `crates/test/README.md` about how it works and
how to use it, but for now this is mainly intended to play around with locally
in this repository for our own tests.

* Port a numbe of `js-sys` tests to the new test framework

This commit ports a number of existing tests for the `js-sys` crate over to the
new test framework created in the previous commit, showing off how they can be
executed as well as drastictlly simplifying the tests themselves! This is
intended to be a proof of concept for now which we can refine over time. This
should also show off that it's possible to incrementally move over to the new
test framework.
2018-07-20 13:47:49 -05:00
T. Nagasawa
bec1c95b5c bindings for to_locale_XXX_case (#523) 2018-07-20 09:03:29 -05:00
Alex Crichton
6eef5f7b52
Move the js module to a js_sys crate (#512)
* Move the `js` module to a `js_sys` crate

* Update js-sys tests to pass again

* Update binding_to_unimplemented_apis_doesnt_break_everything

Remove its dependency on the `js` module

* Update metadata for js-sys

* Fix the `closures` example
2018-07-19 14:30:58 -05:00