89 Commits

Author SHA1 Message Date
dcodeIO
3165f4337f Refactor compilation of aborts and terminate with unreachable
Because of the latter, we can't test it anymore without trapping, but that's somewhat the point
2018-01-27 17:02:52 +01:00
dcodeIO
2670340cce Update tests 2018-01-27 16:28:09 +01:00
dcodeIO
5d76ba9437 Wire assertions to global abort, see #8 2018-01-27 16:23:00 +01:00
dcodeIO
de066fc128 Preliminary strings
While not well-wrought, it's at least possible now to log some stuff when debugging
2018-01-27 05:35:14 +01:00
dcodeIO
b548b5c81f Properly resolve enum value siblings 2018-01-24 03:08:09 +01:00
dcodeIO
2fa7fc7885 Take advantage of smaller integer load and store ops 2018-01-23 15:44:25 +01:00
dcodeIO
a257b6e529 Load/store constant offset utility 2018-01-21 16:34:50 +01:00
dcodeIO
b77646df6e Update binaryen to latest nightly 2018-01-20 05:27:54 +01:00
dcodeIO
64c939fdc4 Initial implementation of 'new'
This doesn't yet call the constructor or use provided parameters and just allocates raw memory
2018-01-19 16:13:14 +01:00
dcodeIO
ef7a095494 Report if a function isn't guaranteed to return 2018-01-19 04:16:18 +01:00
dcodeIO
7be4f9fabb Control flow evaluator; Support for block-level let/const variables 2018-01-18 23:34:12 +01:00
dcodeIO
9cdfa35938 Initial implementation if ugc, see #16; Fix tests 2018-01-18 01:48:03 +01:00
dcodeIO
1662950f3c Refactor TLSF to a more TS-friendly structure 2018-01-17 02:08:14 +01:00
dcodeIO
f2ba4b4a76 Filler implementation for std Set 2018-01-15 00:08:06 +01:00
dcodeIO
49d29fc9f2 More std array 2018-01-14 21:17:43 +01:00
dcodeIO
827bb4afe8 Use move_memory in std Array#unshift 2018-01-14 02:41:13 +01:00
dcodeIO
ad469ca445 Polyfill move_memory and set_memory and remove Heap 2018-01-14 02:30:20 +01:00
dcodeIO
2c009c67d3 Initial element access compilation; Carefully approaching std array 2018-01-13 23:38:07 +01:00
dcodeIO
dd596b015d Simplify reinterpret to require one type argument only, fixes #9 2018-01-13 01:15:09 +01:00
dcodeIO
2df318a7ec Implicitly alias stdlib exports as program globals, see #8 2018-01-12 15:36:17 +01:00
dcodeIO
3980e53bb7 Let the optimizer decide what it takes to become a select 2018-01-12 05:03:25 +01:00
dcodeIO
d89703cdad Transition to TypeFlags for specific type checks; Optimize logical ops a bit 2018-01-10 23:19:14 +01:00
dcodeIO
fc777b3a89 Builtins rewrite with type parameter inference; Small integer math optimizations; Switchify 2018-01-10 13:09:05 +01:00
dcodeIO
d8fa04f910 Operator overload preparations 2018-01-06 10:20:38 +01:00
dcodeIO
9846f6c033 Add showcase compiler test incl. respective features and fixes 2018-01-05 18:19:32 +01:00
dcodeIO
2d0f5f3087 Comma expressions fwiw 2018-01-05 01:55:59 +01:00
dcodeIO
7e9b58428b Always compile globals because initializers might have side effects 2018-01-04 06:00:42 +01:00
dcodeIO
50dea3b1df Basic initial inheritance 2018-01-04 01:36:26 +01:00
dcodeIO
ae99adefce Better resolve infrastructure; Instance fields 2018-01-03 18:33:27 +01:00
dcodeIO
fb2b7aa96b Notes on unary EQZ in compileBinary EQ 2018-01-02 23:20:57 +01:00
dcodeIO
f507fc8168 Add fmod compiler test 2018-01-02 23:01:06 +01:00
dcodeIO
1221ff129d More built-in constants; Get/set parsing fixes; I64.toF64 fixes 2018-01-02 21:41:25 +01:00
dcodeIO
2b182b505e Make sure changetype works 2018-01-02 05:02:05 +01:00
dcodeIO
3add4624c5 Initial instance methods and field layout; More cleanup 2018-01-01 20:27:21 +01:00
dcodeIO
2888ba14ad PSON decoder example using namespaced imports 2017-12-30 05:11:58 +01:00
dcodeIO
c67f87a988 Update binaryen.js and enable tee optimizations 2017-12-29 04:42:20 +01:00
dcodeIO
8d894d0827 Make sure constant locals are inlined, see #6 2017-12-28 15:17:35 +01:00
dcodeIO
7795d48d98 Namespaced imports 2017-12-27 22:38:32 +01:00
dcodeIO
eccac129ad Search parent namespaces when resolving identifiers 2017-12-27 19:17:29 +01:00
dcodeIO
ba61a5e414 Getters & setters (static); Instantiate compiler tests; Cleanup 2017-12-27 02:37:53 +01:00
dcodeIO
5c4bf1af76 Less prose; Update i64 example; More options for asc 2017-12-25 12:08:51 +01:00
dcodeIO
d7c069b692 Get rid of determineExpressionType 2017-12-23 17:49:06 +01:00
dcodeIO
ca9c79185b Basic type inference 2017-12-23 13:48:04 +01:00
dcodeIO
ad298c7bea Asterisk imports parsing; Pussyfooting around stdlib 2017-12-23 00:48:54 +01:00
dcodeIO
666ba54e42 Heap fill/compare; Std string experiments 2017-12-21 10:14:53 +01:00
dcodeIO
dd5c3e7a4e Type aliases 2017-12-20 13:36:39 +01:00
dcodeIO
aa563a9a5a Cleanup; Documentation 2017-12-18 03:46:36 +01:00
dcodeIO
c70eb7792f Link globals into global scope instead 2017-12-16 20:08:33 +01:00
dcodeIO
2720515982 More stdlib setup 2017-12-16 17:54:53 +01:00
dcodeIO
85a9fb1eb5 Stdlib preparations 2017-12-16 02:27:39 +01:00