89 Commits

Author SHA1 Message Date
dcodeIO
83e96892f2 Statically eliminate unnecessary branches in generic contexts
In order to use the new compile time type checks in generics, untaken branches must be skipped because these might be invalid.
2018-03-17 14:40:58 +01:00
dcodeIO
faac3c31eb AST cleanup; Definition generators scaffolding 2018-03-17 01:37:05 +01:00
dcodeIO
081ac768ae Give some love to the linter 2018-03-13 14:03:57 +01:00
dcodeIO
23a7db4dc3 Ensure consistent variable modifiers
'var' is a distinct local or mutable global, 'let' a shared local
2018-03-13 02:32:10 +01:00
dcodeIO
7ee6e1cf7b Fix compilation of immediate called function expressions 2018-03-12 22:34:40 +01:00
dcodeIO
c93f0bb1fe Fixed a function expression parsing issue
Also uncovered a yet-to-be-fixed issue when immediately calling a returned function
2018-03-12 19:39:05 +01:00
dcodeIO
7870e3ac18 Generic function type aliases 2018-03-12 17:44:09 +01:00
Daniel Wirtz
423533c6b0
Implement function types / indirect calls / trampolines (#39) 2018-03-12 14:06:39 +01:00
dcodeIO
f754b24819 Fix asc bundle with webpack 4, see #36; Function expression progress 2018-03-03 18:38:38 +01:00
dcodeIO
d4c00eaba3 Revised implicit type conversions; Initial function expression compilation 2018-02-28 01:48:01 +01:00
dcodeIO
8dc517e352 Cleanup; Initial tslint integration 2018-02-25 00:13:39 +01:00
dcodeIO
3d7e8b2b7a More cleanup and a possible fix for #29 2018-02-16 11:55:13 +01:00
dcodeIO
d31e484b15 Cleanup; Fix an issue with 'let' declarations reusing a local 2018-02-14 19:21:31 +01:00
dcodeIO
b1c6ccab2a Use long.js in JS and native i64 in WASM; Compile literals more thoroughly 2018-02-14 09:18:43 +01:00
dcodeIO
ad92d91f01 Move built-in declarations to actual sources; Remove declaration is null checks; Resolve calls 2018-02-09 02:31:48 +01:00
dcodeIO
4736227879 Update binaryen to latest nightly; Source map support 2018-02-02 03:07:54 +01:00
dcodeIO
1995bf9eb4 Parser fixes; Lib updates 2018-01-29 22:36:07 +01:00
dcodeIO
1b0ed61072 Field initializers and constructors 2018-01-28 15:13:31 +01:00
dcodeIO
b1e7b75ad7 Static operator overloads 2018-01-28 06:18:27 +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
5d142ba647 Unify target checks 2018-01-21 17:52:44 +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
461daab2a2 Handle static readonly members like constants 2018-01-17 06:56:12 +01:00
dcodeIO
1662950f3c Refactor TLSF to a more TS-friendly structure 2018-01-17 02:08:14 +01:00
dcodeIO
d1fed692f6 Moved AST serialization to extra (not ultimately needed by asc) 2018-01-15 19:00:18 +01:00
dcodeIO
49d29fc9f2 More std array 2018-01-14 21:17:43 +01:00
dcodeIO
2c009c67d3 Initial element access compilation; Carefully approaching std array 2018-01-13 23:38:07 +01:00
dcodeIO
2df318a7ec Implicitly alias stdlib exports as program globals, see #8 2018-01-12 15:36:17 +01:00
dcodeIO
7c8670ac35 Regexp literal support; Properly resolve statically inherited members 2018-01-07 15:07:46 +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
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
1221ff129d More built-in constants; Get/set parsing fixes; I64.toF64 fixes 2018-01-02 21:41:25 +01:00
dcodeIO
dc78fc8d20 Tidy up program error messages 2018-01-02 03:54:06 +01:00
dcodeIO
3add4624c5 Initial instance methods and field layout; More cleanup 2018-01-01 20:27:21 +01:00
dcodeIO
2f12c7fa50 Fix local type being possibly null 2017-12-28 15:20:37 +01:00
dcodeIO
8d894d0827 Make sure constant locals are inlined, see #6 2017-12-28 15:17:35 +01:00
dcodeIO
2ed3c22031 Cleanup: Make use of type inference and use 'var' in functions to match actual WebAssembly semantics 2017-12-28 04:09:40 +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
4baff99125 Refactoring; Add tslint fwiw 2017-12-24 03:19:47 +01:00
dcodeIO
ad298c7bea Asterisk imports parsing; Pussyfooting around stdlib 2017-12-23 00:48:54 +01:00