90 Commits

Author SHA1 Message Date
dcodeIO
b1e7b75ad7 Static operator overloads 2018-01-28 06:18:27 +01:00
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