dcodeIO
6d6d1dddcf
Improve inlining where locals can be aliased; Add a crude mechanism for explicit unchecked array accesses
...
The `unchecked` builtin should be handled with ultimate care and it would be a lot better if there'd be a mechanism doing this automatically.
2018-04-25 05:04:35 +02:00
dcodeIO
2ff1bb745a
Fix some diagnostic issues when skipping invalid statements, see #80 ; Make game-of-life example somewhat interactive; Update dist files
2018-04-22 23:13:02 +02:00
dcodeIO
9579086699
Add what we have for GC so far
...
Not functional yet, but might be good to have for discussing it.
2018-04-18 16:32:07 +02:00
dcodeIO
5a2f834c0d
Fix game-of-life example inconsistencies; Fix ternary expression issues in void contexts and variable statements; Simplify HEAP_BASE handling
2018-04-18 15:12:33 +02:00
dcodeIO
4929fca363
Move some numeric builtins to stdlib; Minor refactoring
2018-04-17 02:50:38 +02:00
dcodeIO
748e811137
Proper isNaN/isFinite without a temp. local
2018-04-12 20:40:00 +02:00
Daniel Wirtz
623597c23a
Make the transition to ArrayBuffer backed Arrays ( #70 )
...
* Traverse base classes when resolving overloads
* Implement preliminary TypedArray accessors
* Extract decorator flags from common flags to make space
* Add '**' overload
* Implement basic explicit inlining
* Support inlining of instance methods
* Reduce number of required locals when inlining
* Implement inlining of operator overloads
* Fix issues when inlining generic functions
2018-04-11 23:35:19 +02:00
dcodeIO
dcc0e284fb
Make type checking builtins also accept just a type argument
2018-04-07 23:31:36 +02:00
dcodeIO
06198a3723
Rename lib prefix to '~lib' (parens aren't valid); Add built-in alignof<T>; Prepare for ArrayBufferView
2018-04-02 19:05:26 +02:00
dcodeIO
59a22c1842
A little 'asinit' CLI tool for quickly setting up a project; Minor refactoring
2018-04-01 23:46:41 +02:00
dcodeIO
6ff69394f0
Minor cleanup
2018-03-31 18:18:55 +02:00
dcodeIO
e75d006d26
Implement Math/Mathf.pow
2018-03-26 03:50:06 +02:00
dcodeIO
721d77012b
Math scaffolding
2018-03-24 17:18:15 +01:00
dcodeIO
664f2a1c0d
Add offsetof<T> builtin; Put a function's trampoline into the function table if a it has optional parameters; TypedArray scaffolding
2018-03-24 00:38:49 +01:00
dcodeIO
9cc0fcd611
Initial ArrayBuffer implementation; Conditional allocation within constructors; Explicit constructor return values
2018-03-23 01:47:01 +01:00
dcodeIO
00e6d613a9
Fix an issue with asc not finding bundled library files in the browser; Minor cleanup
2018-03-21 23:27:53 +01:00
dcodeIO
49f4d3dff1
Eliminate @builtin
decorator for compatibility with TS
2018-03-21 16:29:08 +01:00
dcodeIO
2c0ddf4f80
Support 'this' in static functions, fixes #45 ; Fix propagation of 'ambient' flag
2018-03-20 12:02:05 +01:00
dcodeIO
0fef69e445
Set up documentation generation
2018-03-19 01:12:18 +01:00
dcodeIO
5eb10d404f
Document the purpose of most files
2018-03-17 23:41:48 +01:00
dcodeIO
2ed9fac171
Initial compile time type check builtins
2018-03-17 12:54:37 +01:00
dcodeIO
faac3c31eb
AST cleanup; Definition generators scaffolding
2018-03-17 01:37:05 +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
Daniel Wirtz
423533c6b0
Implement function types / indirect calls / trampolines ( #39 )
2018-03-12 14:06:39 +01:00
dcodeIO
4633fdab96
Update binary expression inference, see #35 ; Update dependencies
2018-03-01 19:42:07 +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
48cbbbbd68
More cleanup
2018-02-16 18:57:51 +01:00
dcodeIO
d31e484b15
Cleanup; Fix an issue with 'let' declarations reusing a local
2018-02-14 19:21:31 +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
9e3b6f202d
Naive parseFloat
2018-01-29 07:42:40 +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
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
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
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
7be4f9fabb
Control flow evaluator; Support for block-level let/const variables
2018-01-18 23:34:12 +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
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
7c8670ac35
Regexp literal support; Properly resolve statically inherited members
2018-01-07 15:07:46 +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