Jannik Keye
3ba00bc13c
feat: add Reflect.get
2018-07-04 12:31:24 +02:00
Jannik Keye
5fa18f8f40
feat: add Reflect.deleteProperty
2018-07-04 12:24:52 +02:00
Jannik Keye
07a726b9dc
feat: add Reflect.defineProperty
2018-07-04 12:17:01 +02:00
Jannik Keye
13b3b0d87a
feat: add Reflect.construct
2018-07-04 12:07:02 +02:00
Jannik Keye
592d426e4f
feat: add Reflect.apply
2018-07-04 11:43:34 +02:00
Nick Fitzgerald
fbbd97bbe0
Merge pull request #380 from akryvomaz/master
...
bindings for Generator.next(), Generator.return() and Generator.throw()
2018-07-03 16:30:46 -07:00
Alexander Kryvomaz
eac2b05b1b
added catch attribute to the Generator methods, consistent rust keyword name
2018-07-04 01:22:56 +03:00
Nick Fitzgerald
e644ee6dad
Merge pull request #375 from sendilkumarn/fix-node-webpack
...
fix webpack to handle node global functions
2018-07-03 13:50:39 -07:00
Alexander Kryvomaz
b797bbc39c
bindings for Generator.throw()
2018-07-03 23:48:54 +03:00
Alexander Kryvomaz
39d79eb037
bindings for Generator.return()
2018-07-03 23:47:10 +03:00
Alexander Kryvomaz
6e95ba20f1
bindings for Generator.next()
2018-07-03 23:42:49 +03:00
Jonathan Sundqvist
17fde01243
Merge pull request #378 from jhenninger/math-bindings
...
Bindings for Math.pow, round, sign, sin, sinh, sqrt, tan, tanh and trunc
2018-07-03 21:08:28 +02:00
Sendil Kumar
f5075eb3be
use simplified logic
2018-07-03 20:48:31 +02:00
Sendil Kumar
99ca230bdb
add some comments
2018-07-03 20:44:34 +02:00
Johannes Henninger
b689a78351
Bindings for Math.pow, round, sign, sin, sinh, sqrt, tan, tanh and trunc
2018-07-03 20:00:56 +02:00
Sendil Kumar
8f034bc078
fix webpack to handle node global functions
2018-07-03 18:14:30 +02:00
Ivan Enderlin
54523d82ed
test(js) Fix expectations regarding given locales.
2018-07-03 14:37:38 +02:00
Ivan Enderlin
df5fec22d9
fix(js) Use f64
instead of Number
.
2018-07-03 14:26:00 +02:00
Ivan Enderlin
fe4c150431
Merge branch 'master' into js_date
2018-07-03 14:12:05 +02:00
Johannes Henninger
6dede6f20f
Use f64 for most Math.* bindings ( #369 )
2018-07-02 23:41:57 -05:00
Alex Crichton
4ceaf3e0f4
Some small cleanups ( #366 )
...
* No need for version deps in dev-deps
These are all internal so we can drop the version
* Remove wasm-bindgen-cli's parity-wasm dep
No longer needed
* Tweak file hierarchy in webidl tests
Use Cargo's conventions to avoid the need to define `[[test]]` sections
* Remove unused imports
2018-07-02 11:57:39 -05:00
Marcin Baraniecki
dcb3415da8
Expose bindings/object is* methods ( #363 )
...
* implements Object.isExtensible() binding
* implements Object.isFrozen() binding
* implements Object.isSealed() binding
2018-07-02 10:32:16 -05:00
Marcin Baraniecki
37fc159061
implements Object.preventExtensions() binding ( #364 )
2018-07-02 10:31:40 -05:00
Sendil Kumar N
10ffe8b3be
Merge pull request #361 from brisad/string-lower-and-upper-case
...
Bindings for string lower and upper case
2018-07-02 09:26:47 +02:00
belfz
1d04203e89
implements Object.values() binding
2018-07-01 23:50:10 +02:00
Michael Hoffmann
d5d451b94b
Add binding for String.prototype.toUpperCase
2018-07-01 23:12:42 +02:00
Michael Hoffmann
58560f1408
Add binding for String.prototype.toLowerCase
2018-07-01 23:11:13 +02:00
Jonathan Sundqvist
bfffd58683
Merge pull request #359 from akryvomaz/master
...
bindings for Function.prototype.bind, decodeURIComponent, encodeURIComponent
2018-07-01 16:55:18 +02:00
Alexander Kryvomaz
609bf34d60
bindings for encodeURIComponent
2018-07-01 15:59:12 +03:00
Alexander Kryvomaz
0f07dd9048
bindings for decodeURIComponent
2018-07-01 15:53:44 +03:00
Alexander Kryvomaz
f850a6fafc
bindings for Function.prototype.bind()
2018-07-01 15:44:36 +03:00
belfz
ce9b95635d
implements Object.setPrototypeOf() binding
2018-07-01 11:52:22 +02:00
Alex Crichton
cf08aee341
Tidy up a test
2018-06-30 11:19:27 -07:00
Alex Crichton
e06255fba5
Don't generate JS bindings for unused imports
...
If a JS import's shim isn't actually imported that means that somewhere along
the way it was optimized out or it was never used in the first place! In that
case we can skip generation of the JS bindings for it as it's not needed.
2018-06-29 15:56:12 -07:00
Satoshi Amemiya
f9c804db20
Add support for js::Error
2018-06-29 23:24:46 +09:00
Alex Crichton
e55af85edc
Support by-value self methods ( #348 )
...
Refactor slightly to use the same internal support that the other reference
conversions are using.
Closes #329
2018-06-28 20:09:11 -05:00
Alex Crichton
9a3ff77ea9
Support returning custom types in imports ( #350 )
...
Closes #320
2018-06-28 20:08:02 -05:00
Alex Crichton
4138583dff
Support wildcard arguments in foreign functions ( #351 )
...
No real reason to not support them!
Closes #346
2018-06-28 20:06:35 -05:00
Nick Fitzgerald
37293ee42a
Merge pull request #344 from autodidaddict/math-externs
...
Binding for Math.cos,cosh,exp,expml,fround,imul,log,log10,log1p,log2
2018-06-28 15:52:45 -07:00
Nick Fitzgerald
5ff6329d29
Merge pull request #349 from jannikkeye/bindings-map
...
Add bindings for Map.xx
2018-06-28 15:46:07 -07:00
Nick Fitzgerald
e31da84bce
Merge pull request #340 from ohanar/rustfmt
...
Use rustfmt for standarized formatting
2018-06-28 15:17:23 -07:00
Jannik Keye
d868ff26ef
Add bindings for Set.xx ( #347 )
...
* feat(Set): add Set.add
* feat(Set): add Set.clear
* feat(Set): add Set.delete
* feat(Set): add Set.has
* feat(Set): add Set.new
* feat(Set): add Set.size
* feat(Set/SetIterator): add Set.entries
* feat(Set/SetIterator): add Set.keys
* feat(Set/SetIterator): add Set.values
2018-06-28 15:57:49 -05:00
Chris Kolodin
9193218648
add bindings for array.prototype.some() ( #341 )
...
following the example set in https://github.com/rustwasm/wasm-bindgen/pull/314
2018-06-28 15:57:01 -05:00
Jannik Keye
e0a70417ce
feat(Map/MapIterator): add Map.values
2018-06-28 22:00:02 +02:00
Jannik Keye
fc131ee97e
feat(Map/MapIterator): add Map.keys
2018-06-28 21:59:11 +02:00
Jannik Keye
228abaa4ae
feat(Map/MapIterator): add Map.entries
2018-06-28 21:58:34 +02:00
Jannik Keye
ea19775639
feat(Map): add Map.size
2018-06-28 21:56:49 +02:00
Jannik Keye
6f90bd677b
feat(Map): add Map.set
2018-06-28 21:55:55 +02:00
Jannik Keye
27ee57175a
feat(Map): add Map.new
2018-06-28 21:55:10 +02:00
Jannik Keye
07e61e1175
feat(Map): add Map.has
2018-06-28 21:54:10 +02:00
Jannik Keye
e0b399643a
feat(Map): add Map.get
2018-06-28 21:53:20 +02:00
Jannik Keye
f7e4019e72
feat(Map): add Map.delete
2018-06-28 21:52:27 +02:00
Jannik Keye
ab0546963b
feat(Map): add Map.clear
2018-06-28 21:51:39 +02:00
Kevin Hoffman
81e68517f2
Adding line separator in code docs above MDN URLs.
2018-06-28 15:05:10 -04:00
Kevin Hoffman
3e84b97de2
Binding for Math.cos,cosh,exp,expml,fround,imul,log,log10,log1p,log2
2018-06-28 12:46:53 -04:00
R. Andrew Ohana
9127a0419f
rustfmt all the things
2018-06-27 22:42:34 -07:00
Nick Fitzgerald
40722b7ae3
Merge pull request #333 from Hywan/js_boolean
...
feat(js) Implement `Boolean` bindings.
2018-06-27 14:36:00 -07:00
Nick Fitzgerald
5aa648a2e8
Merge pull request #335 from xeqlol/weakset-bindings
...
Implement Weakset bindings
2018-06-27 14:27:48 -07:00
Nick Fitzgerald
e40a359278
Merge pull request #336 from belfz/expose-bindings/array-prototype-every
...
implements Array.prototype.every()
2018-06-27 09:11:21 -07:00
Nick Fitzgerald
4ba61c1c20
Merge pull request #332 from Hywan/js_test
...
test(js) Fix file permissions, and update a comment
2018-06-27 09:08:26 -07:00
belfz
dacf406dbd
implements Array.prototype.every()
2018-06-27 13:45:47 +02:00
Dimitrii Nemkov
761a9272ca
Added WeakSet delete method
2018-06-27 13:44:01 +05:00
Dimitrii Nemkov
6b798a3508
Added WeakSet add method
2018-06-27 13:38:33 +05:00
Dimitrii Nemkov
846e5aaacc
Added WeakSet has method
2018-06-27 13:26:53 +05:00
Dimitrii Nemkov
a0dda505d9
Added WeakSet constructor
2018-06-27 13:15:47 +05:00
Ivan Enderlin
a4d47afda6
feat(js) Implement the Date.UTC
binding.
2018-06-27 09:41:16 +02:00
Ivan Enderlin
e334c0c5af
feat(js) Implement the Date.now
binding.
2018-06-27 09:40:40 +02:00
Ivan Enderlin
869d99b870
feat(js) Implement Number.new
binding.
2018-06-27 09:36:37 +02:00
Ivan Enderlin
91bc7a199c
feat(js) Implement Boolean
bindings.
...
Cf https://github.com/rustwasm/wasm-bindgen/issues/275 .
2018-06-27 09:07:47 +02:00
Ivan Enderlin
c99c0f8483
test(js) Fix file permissions, and update a comment.
2018-06-27 08:33:37 +02:00
gaurikholkar
073cf7455b
binding for Math.floor
2018-06-27 10:44:43 +05:30
Nick Fitzgerald
c16b9a903c
Merge pull request #330 from elpiel/string-prototypes
...
String - length, trim, trimLeft, trimRight, trimStart, trimEnd, valueOf, toString
2018-06-26 17:10:15 -07:00
Lachezar Lechev
16517fadcb
String - toString and valueOf
2018-06-26 22:21:51 +02:00
Lachezar Lechev
9f087241a1
String - length, trim, trimStart & trimLeft, trimEnd & trimRight
2018-06-26 22:10:25 +02:00
Nick Fitzgerald
919c2bedac
Merge pull request #318 from xeqlol/weakmap-bindings
...
WeakMap bindings
2018-06-26 12:55:30 -07:00
Nick Fitzgerald
f0614e92e8
Merge pull request #328 from akryvomaz/master
...
bindings for Function.apply() and Function.toString()
2018-06-26 12:54:10 -07:00
Dimitrii Nemkov
ec8ed3a48d
Fixed missed error in WeakMap::set
2018-06-27 00:20:36 +05:00
Dimitrii Nemkov
a6c7b4b69f
Changed keys' type JsValue -> Object, changed description of WeakMap constructor
2018-06-26 23:50:31 +05:00
Alexander Kryvomaz
48061aaab6
bindings for Function.prototype.apply() and Function.prototype.toString()
2018-06-26 21:35:28 +03:00
Dimitrii Nemkov
a6d62c696f
Merge branch 'master' into weakmap-bindings
2018-06-26 23:29:48 +05:00
Herman J. Radtke III
3833c94400
js: Implement bindings for Array.isArray
2018-06-26 11:11:02 -07:00
Nick Fitzgerald
16bc3eb7e7
Merge pull request #315 from ohanar/yarn2
...
use both npm and yarn in ci
2018-06-26 10:43:12 -07:00
Nick Fitzgerald
df5862bd7e
Merge branch 'master' into string-code_point_at
2018-06-26 10:39:26 -07:00
Nick Fitzgerald
ff80029cf0
Merge branch 'master' into string-concat
2018-06-26 10:32:42 -07:00
Nick Fitzgerald
6dcbc4a0cc
Merge branch 'master' into date
2018-06-26 10:25:26 -07:00
Nick Fitzgerald
e8c6c40f10
Merge pull request #323 from rail44/string-char_code_at
...
Support String.prototype.charCodeAt
2018-06-26 10:23:10 -07:00
Nick Fitzgerald
c836639229
Merge pull request #322 from belfz/expose-bindings/object-seal
...
implements Object.seal() binding
2018-06-26 10:22:00 -07:00
Nick Fitzgerald
552f3c7c66
Merge branch 'string-includes' of https://github.com/rail44/wasm-bindgen into string-includes
2018-06-26 10:17:26 -07:00
Satoshi Amemiya
3d72a90481
Support String.prototype.concat
2018-06-27 00:48:09 +09:00
Sendil Kumar
ef27cb6392
Add date constructor
2018-06-26 16:55:40 +02:00
Sendil Kumar
f9ae7f49ad
Add date to date string
...
fix failing test case
2018-06-26 16:55:40 +02:00
Sendil Kumar
dd3e8cc8b8
Add date to iso string
2018-06-26 16:55:40 +02:00
Sendil Kumar
8f21393c6b
Add date to json
2018-06-26 16:55:40 +02:00
Sendil Kumar
be44ad8ad8
Add date to locale date string
2018-06-26 16:55:40 +02:00
Sendil Kumar
4e05bc470f
Add date to locale string
2018-06-26 16:55:40 +02:00
Sendil Kumar
c0aba821d5
Add date to locale time string
2018-06-26 16:55:40 +02:00
Sendil Kumar
ca17ef8d7c
Add date to string
2018-06-26 16:55:40 +02:00
Sendil Kumar
f30de17c2b
Add date to time string
2018-06-26 16:55:39 +02:00
Sendil Kumar
033ba3f3a7
Add date to utc string
2018-06-26 16:55:39 +02:00
Sendil Kumar
cd189d53c4
Add date value of
2018-06-26 16:55:36 +02:00
Satoshi Amemiya
22fdcf02b2
Support String.prototype.charCodeAt
2018-06-26 22:09:43 +09:00
Satoshi Amemiya
efeefbd4c1
Support String.prototype.codePointAt
2018-06-26 22:07:34 +09:00
Satoshi Amemiya
ae847861e7
String - includes() support
2018-06-26 21:10:19 +09:00
belfz
a30509d142
implements Object.seal binding
2018-06-26 14:02:42 +02:00
xeqlol
a369f7a246
WeakMap bindings
2018-06-26 13:12:32 +05:00
Tim Ryan
5925871a05
Adds support for the UInt8Array constructor and its fill method.
2018-06-26 00:34:17 -04:00
R. Andrew Ohana
cc1db03e5a
use both npm and yarn in ci
2018-06-25 17:22:51 -07:00
Nick Fitzgerald
0851025ca5
js: Implement bindings for Array.prototype.filter
2018-06-25 16:19:07 -07:00
Nick Fitzgerald
3212b0a019
Merge pull request #312 from jonathan-s/moar-methods
...
Lots of methods for Math
2018-06-25 14:44:36 -07:00
Jonathan Sundqvist
e05b1ae6ba
Add clz32 to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
9b70f14a1c
Add ceil to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
2de2a815d5
Add cube root (cbrt) to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
5eb744c7d6
Add atanh to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
3223a9af75
Add atan2 to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
7e514b939f
Add atan to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
4b812ee47d
Add asinh to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
94255c1ba9
Add asin to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
d40a314a91
Add acosh to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
230650055c
Add acos to Math
2018-06-25 22:52:04 +02:00
Jonathan Sundqvist
9633642e6e
Add abs to Math
2018-06-25 22:52:04 +02:00
Lachezar Lechev
44444920a4
Merge branch 'master' into string-support
2018-06-25 22:20:38 +02:00
Lachezar Lechev
36e79d23c4
String - startsWith/substring/indexOf
2018-06-25 21:30:04 +02:00
Nick Fitzgerald
7a688d6967
Merge branch 'master' into string-substr
2018-06-25 11:31:42 -07:00
Lachezar Lechev
d28d81f38d
Add basic support for String.prototype.charAt() ( #306 )
...
* String - charAt() implementation
* String - charAt() - add js_class
2018-06-25 11:24:44 -07:00
Nick Fitzgerald
eb04d15a65
js: Add bindings to Object.keys
2018-06-25 10:45:53 -07:00
Lachezar Lechev
b81dc46220
String - substr() support
2018-06-24 23:03:39 +02:00
Sendil Kumar
32bc9f271c
rebase to handle JsString
2018-06-24 20:48:37 +02:00
Sendil Kumar
233b35254f
Merge branch 'master' into number-fixed-exponential
2018-06-24 20:46:53 +02:00
R. Andrew Ohana
21f49d0302
reenable part of js_globals::Number::to_locale_string
2018-06-24 10:43:24 -07:00
Sendil Kumar
0f57398917
Add to_fixed and to_exponential function
2018-06-24 10:08:23 +02:00
R. Andrew Ohana
8abecba983
fix and disable test js_globals::Number::to_locale_string
2018-06-23 18:25:47 -07:00
R. Andrew Ohana
35c5dafdd2
js globals: return JsString rather than String
2018-06-23 17:15:13 -07:00
Nick Fitzgerald
b1cbb56224
Merge branch 'master' into master
2018-06-23 16:19:08 -07:00
Nick Fitzgerald
0f5badf95e
Merge pull request #299 from jonathan-s/number
...
Adds valueOf and toString to Number
2018-06-23 16:04:35 -07:00
Alexander Kryvomaz
9e07c4935c
bindings for Function.length and Function.name
2018-06-23 23:41:28 +03:00
Jonathan Sundqvist
6b5974d1bd
Add toLocaleString to Number
2018-06-23 19:03:55 +02:00
Jonathan Sundqvist
f636f7b28d
Add toPrecision to Number
2018-06-23 18:18:58 +02:00
Jonathan Sundqvist
bf56d5815b
Add the binding of to_string to Number
2018-06-23 17:38:13 +02:00
Jonathan Sundqvist
a7f8e071fe
Add the binding valueOf to number
2018-06-23 14:43:43 +02:00
belfz
e255925292
implements Object.prototype.valueOf() binding
2018-06-23 12:11:46 +02:00
kzvi
5ae6ee7aec
add JsString binding to src/js.rs and tests
2018-06-22 17:51:44 -07:00
Jonathan Sundqvist
99ee74d153
Add binding for concat
2018-06-22 10:55:50 -07:00
Nick Fitzgerald
7825122feb
Merge branch 'expose-bindings/object-to-locale-string' of https://github.com/belfz/wasm-bindgen into rollup
2018-06-22 10:51:17 -07:00
Nick Fitzgerald
ce14de21c3
Merge branch 'array-method' of https://github.com/jonathan-s/wasm-bindgen into rollup
2018-06-22 10:45:33 -07:00
belfz
39465c896c
implements Object.prototype.toLocaleString() binding
2018-06-22 13:36:44 +02:00
Jonathan Sundqvist
a7bb555944
Add Sort to Array
2018-06-22 09:01:41 +02:00
robertdurst
a9ca64b689
Implement Array.length binding
2018-06-21 21:30:57 -07:00
Nick Fitzgerald
9e01e67aa3
Merge pull request #289 from wismer/array-iterator-method-bindings
...
Array iterator method bindings
2018-06-21 15:24:25 -07:00
Matt Long
a95476a8ee
add binding for entries method
2018-06-21 17:21:35 -04:00
Matt Long
4cc73877a6
add binding for keys method
2018-06-21 17:00:02 -04:00
belfz
dd3740e2fb
allows using &JsValue as an arg to Object's has_own_property
2018-06-21 22:51:30 +02:00
belfz
420eaffcb3
adds missing unit tests for property_is_enumerable
2018-06-21 21:32:03 +02:00
belfz
1e1276410a
implements Object.prototype.isPrototypeOf() binding
2018-06-21 13:56:24 +02:00
belfz
77ad68673c
implements Object.isPrototypeOf binding
2018-06-21 07:36:24 +02:00
Matt Long
a8cd428850
add binding for includes
2018-06-20 18:36:10 -04:00
Matt Long
eb6c2a239c
add binding for toString
2018-06-20 18:23:26 -04:00
Matt Long
3cf522d2df
add bindings for unshift
2018-06-20 18:07:30 -04:00
Matt Long
68acbeab25
add binding for shift
2018-06-20 18:03:26 -04:00
Matt Long
d705cd8bbf
add binding for reverse
2018-06-20 18:00:58 -04:00
Matt Long
4611d7bdba
add binding for push
2018-06-20 17:58:15 -04:00
Matt Long
73081180cd
add binding for pop
2018-06-20 17:55:25 -04:00
Matt Long
2f6f734216
add binding for copyWithin
2018-06-20 17:51:02 -04:00
Matt Long
d155136f0e
add binding for fill
2018-06-20 17:49:34 -04:00
Matt Long
e8bb0c2f98
add binding for slice
2018-06-20 17:46:10 -04:00
Matt Long
0b80888c0d
add binding for join
2018-06-20 17:38:47 -04:00
Matt Long
667733e929
add binding for lastIndexOf
2018-06-20 17:36:35 -04:00
Matt Long
4a96ba3c72
add binding for indexOf
2018-06-20 17:23:38 -04:00
Jonathan Sundqvist
d89c7958eb
Js binding for to_string
2018-06-20 21:55:41 +02:00
Nick Fitzgerald
5eda5504e9
Merge pull request #273 from FreeMasen/validate-ptr
...
Validate ptr
2018-06-19 16:45:31 -07:00
Nick Fitzgerald
224d20337f
Merge pull request #274 from fitzgen/js-sys
...
Expose objects and functions from the JavaScript global scope
2018-06-19 10:42:04 -07:00
Nick Fitzgerald
7b0e779ffd
test: remove unnecessary test.ts
files
...
The testing infrastructure will add exactly this default `test.ts` when it isn't
explicitly specified.
2018-06-19 10:17:42 -07:00
Nick Fitzgerald
a201cafdea
test: Move Object
-related js_globals tests to submodule file
2018-06-19 10:15:09 -07:00
Nick Fitzgerald
161fce9d50
Expose objects and functions from the JavaScript global scope
...
These are bindings to JavaScript's standard, built-in objects and their methods
and properties.
This does *not* include any Web, Node, or any other JS environment APIs. Only
the things that are guaranteed to exist in the global scope by the ECMAScript
standard.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
2018-06-18 16:41:01 -07:00
Robert Masen
e9ea2dabc1
add Validate ptr test
2018-06-18 15:34:48 -05:00
R. Andrew Ohana
d123bedc20
change some asserts to assert_(eq|ne)s
2018-06-18 13:10:07 -07:00
R. Andrew Ohana
0938858aa8
webidl: add support for static attributes
2018-06-15 12:22:14 -07:00
R. Andrew Ohana
fe5cde8636
webidl: add support for static methods
2018-06-15 12:09:42 -07:00
Nick Fitzgerald
639ccd53ce
Merge pull request #269 from ohanar/webidl_constructor
...
webidl: add support for (named) constructors
2018-06-15 11:35:29 -07:00
Robert Masen
19d6cf1488
Copy doc comments from Rust to JS ( #265 )
...
* backend comments complete
* better matching
* gen comments
* Add example
* Move test bindings gen to own fn
* move build step into build fn
* add fn to read js, refactor gen_bindings/test to allow for this
* Add comments test
* Update readmes
* add comments to travis
* fix broken tests
* +x on build.sh
* fix wbg cmd in build.sh
* Address fitzgen's comments
2018-06-15 09:20:56 -07:00
R. Andrew Ohana
cbec42e86c
webidl: add support for named constructors
2018-06-14 16:20:20 -07:00
R. Andrew Ohana
c65cb51fba
webidl: add support for constructors
2018-06-14 16:15:25 -07:00
R. Andrew Ohana
9b8c0b8fb9
small cleanup in testing framework
2018-06-11 18:00:33 -07:00
R. Andrew Ohana
077f50c6f2
webidl: add initial support for integration tests
2018-06-10 23:04:17 -07:00
Alex Crichton
659583b40d
Implement PartialEq
for JsValue
( #217 )
...
Dispatch to JS's `===` operator internally
2018-06-01 16:47:45 -05:00
Alex Crichton
ad89d8457e
Fix tests by pinning versions of webpack ( #219 )
...
Looks like a newer version of webpack has broken tests, so let's use
package-lock.json to pin to an older version while we wait for a fix.
2018-06-01 13:42:59 -05:00
Nick Fitzgerald
daabbbd06e
Add a stub test module for when we have webidl tests
2018-05-29 14:20:15 -07:00
Robert Masen
4ddd93d75d
add char support ( #206 )
...
* add char support
* add char test
* remove __wbindgen_char fns
* re-order travis script
* update serve script
* remove binds to unused char functions
* add more wide character items to chars list
* remove unused code
* add char to readme
* remove built file
2018-05-22 12:34:41 -05:00
Alex Crichton
dd76707ea1
Prevent use-after-free with vectors
...
Awhile back slices switched to being raw views into wasm memory, but this
doens't work if we free the underlying memory unconditionally! Moving around a
`Vec` is already moving a lot of data, so let's copy it onto the JS heap instead
of leaving it in the wasm heap.
2018-05-21 11:23:46 -07:00
Alex Crichton
ca8809b4e9
Don't try to codegen static
into an impl
...
Closes #194
2018-05-11 08:28:09 -07:00
Alex Crichton
06664b34ce
Fix parsing some Rust keywords in attributes
...
Closes #193
2018-05-09 08:01:57 -07:00
Alex Crichton
237fff0698
Map u64/i64 to BigInt in JS
...
This commit is an implementation of mapping u64/i64 to `BigInt` in JS through
the unstable BigInt APIs. The BigInt type will ship soon in Chrome and so this
commit builds out the necessary support for wasm-bindgen to use it!
2018-05-05 18:51:20 -07:00
Alex Crichton
48a823c685
Remove slice logic of "commit to wasm"
...
When adding support for mutable slices I was under the impression that if the
wasm memory was reallocated while we were using it then we'd have to commit the
changes from the original buffer back to the new buffer. What I didn't know,
however, is that once the wasm memory is reallocated then all views into it are
supposed to be defunkt.
It looks like node 9 didn't have this implementation quite right and it appears
fixed in node 10, causing the deleted test here to fail. While this commit does
raise the question of whether this is the right approach to interact with slices
in JS I think the answer is still "yes". The user can always initiate the copy
if need be and that seems strictly better than copying 100% of the time.
2018-05-05 14:52:22 -07:00
Alex Crichton
139b7a1aae
Don't use the global stack for string lengths
...
This commit updates the `Abi` associated type for all slice types to a
`WasmSlice` type, an aggregate of two `u32` integers. This translates to an ABI
where when passed as a function argument it expands to two integer arguments,
and when passed as a return value it passes a return pointer as the first
argument to get filled in.
This is hopefully more forwards-compatible with the host bindings proposal which
uses this strategy for passing string arguments at least. It's a little sketchy
what we're doing as there's not really a stable ABI yet, but hopefully this'll
all be relatively stable for awhile!
2018-05-02 21:03:50 -07:00
Alex Crichton
4304a262c6
Fix enums defined in submodules
2018-05-02 10:17:16 -07:00
Alex Crichton
0566a97485
Add support for mutable slices
...
This commit adds support for mutable slices to pass the boundary between JS and
Rust. While mutable slices cannot be used as return values they can be listed as
arguments to both exported functions as well as imported functions.
When passing a mutable slice into a Rust function (aka having it as an argument
to an exported Rust function) then like before with a normal slice it's copied
into the wasm memory. Afterwards, however, the updates in the wasm memory will
be reflected back into the original slice. This does require a lot of copying
and probably isn't the most efficient, but it should at least work for the time
being.
The real nifty part happens when Rust passes a mutable slice out to JS. When
doing this it's a very cheap operation that just gets a subarray of the main
wasm memory. Now the wasm memory's buffer can change over time which can produce
surprising results where memory is modified in JS but it may not be reflected
back into Rust. To accomodate this when a JS imported function returns any
updates to the buffer are copied back to Rust if Rust's memory buffer has
changed in the meantime.
Along the way this fixes usage of `slice` to instead use `subarray` as that's
what we really want, no copying. All methods have been updated to use `subarray`
accessors instead of `slice` or constructing new arrays.
Closes #53
2018-05-01 10:06:35 -07:00
Alex Crichton
4a873af8d1
Enable cargo test
where possible
...
Currently `#[wasm_bindgen]` generates a bunch of references to symbols that
don't actually exist on non-wasm targets, making it more difficult to get a
crate working across multiple platforms. This commit updates the symbol
references to be dummy ones that panic on non-wasm targets to allow simple
testing/benchmarking to work on native targets.
While this isn't a perfect solution for #114 it's probably as good as we can do
for now pending upstream Cargo features, so I'm gonna say that it...
Closes #114
2018-04-27 15:01:35 -07:00
Alex Crichton
b8895b3a95
Add JsValue::{from_serde, into_serde}
...
These functions are activated with the `serde-serialization` feature of the
`wasm-bindgen` crate. When activated they will allow passing any arbitrary value
into JS that implements the `Serialize` trait and receiving any value from JS
using the `Deserialize` trait. The interchange between JS and Rust is JSON.
Closes #96
2018-04-26 20:45:22 -07:00
Alex Crichton
412bebca72
Add support for version specifications
...
This commit adds a `#[wasm_bindgen(version = "...")]` attribute support. This
information is eventually written into a `__wasm_pack_unstable` section.
Currently this is a strawman for the proposal in ashleygwilliams/wasm-pack#101
2018-04-25 22:23:02 -07:00
Alex Crichton
d9a71b43db
Assert empty JS heap/stack in tests
...
Turns out there was a bug when passing a vector of `JsValue` instances back to
JS all objects were leaked rather than correctly removed from the global slab.
2018-04-25 22:15:28 -07:00
Alex Crichton
faed98b843
Correct how slices are iterated over
...
This commit fixes how the `getArrayJsValueFromWasm` function is defined to
correctly iterate over the slice by looking at the values rather than the
indices.
Closes #169
2018-04-25 21:58:49 -07:00