Commit Graph

306 Commits

Author SHA1 Message Date
485c3fd9b2 Add mandelbrot example; Update game-of-life example 2018-04-19 17:32:23 +02:00
350befee9b Also compile the constructor if a class is exported 2018-04-19 02:58:04 +02:00
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
a15457d8b9 Simplify isFinite & isNaN (#78) 2018-04-18 15:14:24 +02:00
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
4026c087fd Export the trampoline and provide a helper for functions that take optional arguments 2018-04-17 16:04:29 +02:00
4929fca363 Move some numeric builtins to stdlib; Minor refactoring 2018-04-17 02:50:38 +02:00
6d0b5d92c2 Minor string comparision optimizations (#77) 2018-04-16 23:02:55 +02:00
1013c21359 Remove type checking from load/store for portable (#76) 2018-04-16 23:02:12 +02:00
d66f9d205c Add portable ctz, popcnt, rotl, rotr, nearest & copysign (#75)
Thank you!
2018-04-15 00:35:43 +02:00
990fa850ff Add more Array#sort tests (#73) 2018-04-15 00:35:17 +02:00
81223977d0 Fix external names of class exports and similar; Support a few more kinds in TSDBuilder, see #74 2018-04-15 00:34:19 +02:00
78a679759a Update dependencies 2018-04-13 15:31:23 +02:00
ee73a4d28f Initial type parameter inference, see #61
This catches the most common cases but doesn't yet implement inference involving the return type because some prequesites are not yet in place (see test case).
2018-04-13 12:25:27 +02:00
748e811137 Proper isNaN/isFinite without a temp. local 2018-04-12 20:40:00 +02:00
1cea3c6f08 Improve Math#sign (#72) 2018-04-12 19:26:50 +02:00
2002e32c9c Inline small stdlib functions (#71) 2018-04-12 14:17:29 +02:00
5b97427bfa Update dist files 2018-04-11 23:37:33 +02:00
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
0f49e054d2 Minor optimizations to array sorting
...to get a handle on the code
2018-04-08 01:53:22 +02:00
ac2281b14b Improve memory usage for weakHeap sorting (#68) 2018-04-08 01:03:26 +02:00
9731958738 Implement a mechanism to realloc array buffers; Trap when trying to allocate more than max size; Test allocators in CI 2018-04-08 00:52:19 +02:00
dcc0e284fb Make type checking builtins also accept just a type argument 2018-04-07 23:31:36 +02:00
8ffc7d463d Fix invalid assertion when resolving element accesses 2018-04-07 21:58:22 +02:00
89e8de5d82 Enable open-in-browser in the Game Of Life example (#69) 2018-04-07 19:01:10 +02:00
b7ef21950b Add String#repeat method (#67) 2018-04-07 18:59:26 +02:00
f1b00c90be Fix browser asc 2018-04-07 16:37:39 +02:00
8770f7b548 New ArrayBuffer/TypedArray; Stdlib restructure; Fix importing stdlib in stdlib; Traverse constructors; Allow initialization of readonly instance fields in constructors 2018-04-07 03:27:22 +02:00
6268b92eba Resolve string instances to the program's string class 2018-04-06 00:19:45 +02:00
70a0123554 Fix some cases in string comparision (#66) 2018-04-05 17:44:17 +02:00
26601dcfb1 Make '===' and '!==' ignore operator overloads
While not semantically equivalent with JS semantics, this appears to be the right thing to do in AS. Also avoids using changetype just for this purpose, which will eventually become considered unsafe.
2018-04-05 02:42:12 +02:00
7e90ab161d Simplify resolve infrastructure; Fix handling of nested element and property accesses 2018-04-05 02:23:03 +02:00
e790eb757f Add string comparison operator overloads (#64) 2018-04-04 21:50:40 +02:00
5e20bed09a Unify / simplify asc API (in browsers) 2018-04-04 14:39:40 +02:00
acfef646ef Update dist files; Also parse name and source mapping sections in lib/parse 2018-04-04 03:41:04 +02:00
c45a35b1c1 Implement Array#sort (#57) 2018-04-04 00:42:23 +02:00
37825fc84d Implement comparision operator overloads (#63) 2018-04-04 00:01:59 +02:00
5823e35f37 Progress and a tiny WASM binary parser 2018-04-03 23:56:48 +02:00
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
3b50720603 Also create an 'index.js' to load the module when running asinit 2018-04-02 02:42:42 +02:00
59a22c1842 A little 'asinit' CLI tool for quickly setting up a project; Minor refactoring 2018-04-01 23:46:41 +02:00
6ff69394f0 Minor cleanup 2018-03-31 18:18:55 +02:00
3d1f181961 Add Mathf missed defs (#60) 2018-03-31 17:15:59 +02:00
72063577f3 Also implement buffer toString in asc 2018-03-31 00:16:12 +02:00
2e5077da2d Remove unnecessary dependencies in asc bundle; Update dependencies 2018-03-31 00:03:02 +02:00
60f75c931b Update dist files 2018-03-30 17:51:47 +02:00
164f134053 Even more math (#56)
Remaining implementations of JavaScript's Math functions (except sin/cos/tan), both double (Math) and single (Mathf) precision, ported from musl incl. tests from libc-test, plus some changes to match JS semantics. Also binds fmod to `%` and pow to `**`.
2018-03-30 17:25:54 +02:00
e47a130771 More math 2018-03-26 23:46:41 +02:00
792202ac5a Add an option to alias global objects
This for example allows to switch the default 'Math' implementation a program will use. Uses 'NativeMath' by default.
2018-03-26 16:54:25 +02:00
e75d006d26 Implement Math/Mathf.pow 2018-03-26 03:50:06 +02:00