Max Graey
29081b6323
Assert that comparator is not null in Array#sort ( #155 )
2018-07-14 14:56:05 +02:00
Max Graey
d7c1c608bd
Implement itoa32/64 for base 10 ( #151 )
2018-07-13 15:40:37 +02:00
Max Graey
365884ff73
Add String#lastIndexOf and improve tests ( #163 )
2018-07-10 03:31:51 +02:00
dcodeIO
27e61f8f67
Remove noMemory option; Omit 'start' if 'main' is present; Unwrap more unnecessary blocks
2018-06-27 19:03:39 +02:00
dcodeIO
7a8995b18b
Properly inline getters; Simplify blocks when last statement returns
2018-06-22 15:26:59 +02:00
dcodeIO
7ad13f9d65
Add a 'call_indirect' builtin to emit arbitrary calls (might trap at runtime); Optimize 'for' loop compilation a bit
2018-05-25 15:59:17 +02:00
dcodeIO
829af2285c
Fix continue labels in 'for' loops skipping the incrementor
2018-05-23 11:32:12 +02:00
dcodeIO
73417a9a06
Move 'abort' out of builtins and make it overridable
...
Now defaults to 'env.abort' as imported in lib/env.ts, but can be overridden through '--use abort=someThingElseOrNothingAtAll'
2018-05-21 18:48:29 +02:00
dcodeIO
6c0a5c47d9
Update Binaryen and take care of WebAssembly/binaryen#1547
2018-05-14 16:55:55 +02:00
dcodeIO
e415377cda
Avoid trampolines where optional arguments are constant literals, see #102 ; Fix temporary local flags not being cleared; Fix inlined temporary locals not being free'd; Fix inlined flows not breaking after returns; Allow changetype of u32s, i.e. function pointers
2018-05-11 16:31:56 +02:00
dcodeIO
ef9b43740d
Eliminate leftover temporary function types using latest Binaryen
2018-05-09 16:33:42 +02:00
dcodeIO
25a1f6230a
Suppress some unnecessary blocks and nops; Fix compilation of always 'break'ing 'do's
2018-05-06 05:46:35 +02:00
Daniel Wirtz
50f6c1c460
Update internal ABI to zero/sign-extend where necessary only ( #87 )
2018-05-06 00:00:54 +02:00
Max Graey
99bde3a5fa
Use insertion sort for references in Array#sort ( #90 )
...
This fixes that Weak Heap Sort isn't stable and thus might swap equal values, which sometimes results in not deep equal arrays of strings, for example. Insertion sort is stable, so it is used for references instead.
2018-05-02 19:33:17 +02:00
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
391db28fe2
Always try to eliminate branches if tree-shaking is enabled
2018-04-24 23:11:11 +02:00
dcodeIO
63aa648ace
Slim down indexed access as far as currently possible
...
Interestingly, the same code written as statements is significantly slower. See notes.
2018-04-23 23:57:15 +02:00
dcodeIO
de98a19eb8
Implement dynamic array literals
2018-04-23 22:49:04 +02:00
Max Graey
fac0fc59b5
Implement Array#map, Array#forEach, Array#filter, Array#reduceRight ( #81 )
2018-04-22 22:15:38 +02:00
dcodeIO
4026c087fd
Export the trampoline and provide a helper for functions that take optional arguments
2018-04-17 16:04:29 +02:00
Max Graey
6d0b5d92c2
Minor string comparision optimizations ( #77 )
2018-04-16 23:02:55 +02:00
Max Graey
990fa850ff
Add more Array#sort tests ( #73 )
2018-04-15 00:35:17 +02:00
Max Graey
2002e32c9c
Inline small stdlib functions ( #71 )
2018-04-12 14:17:29 +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
0f49e054d2
Minor optimizations to array sorting
...
...to get a handle on the code
2018-04-08 01:53:22 +02:00
Max Graey
ac2281b14b
Improve memory usage for weakHeap sorting ( #68 )
2018-04-08 01:03:26 +02:00
dcodeIO
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
dcodeIO
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
Max Graey
c45a35b1c1
Implement Array#sort ( #57 )
2018-04-04 00:42:23 +02:00
dcodeIO
5823e35f37
Progress and a tiny WASM binary parser
2018-04-03 23:56:48 +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
Igor
710fcefd72
Add array methods: findIndex, reduce, some, every ( #49 )
2018-03-25 13:13:53 +02:00
dcodeIO
19a616dd96
Support indirect calls with omitted arguments
2018-03-24 09:46:22 +01:00
dcodeIO
2738eee9cd
Call trampolines with the actual number of provided operands
...
When calling indirectly, the number of required operands might not be known at compile time and providing the actual number of operands instead solves this.
2018-03-23 15:00:09 +01:00
dcodeIO
be66abbd78
Initial static arrays of basic element types; Fixed member names in generic contexts
2018-03-20 23:41:37 +01:00
dcodeIO
fea8e65a41
Fix 'static readonly' not being recognized as constant anymore, see #44
2018-03-19 19:36:39 +01:00
Igor
162096bcd6
Add Array#includes and improve compatibility of Array#indexOf ( #41 )
2018-03-17 17:02:15 +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
00c4f6fa52
Unify allocator tests even more, also test arena
2018-03-04 17:25:32 +01:00
dcodeIO
d4c00eaba3
Revised implicit type conversions; Initial function expression compilation
2018-02-28 01:48:01 +01:00
dcodeIO
9ef8b162a9
Also lint stdlib
2018-02-25 23:21:32 +01:00
dcodeIO
31633899f9
Use untouched/optimized naming scheme in tests as well
2018-02-17 11:14:41 +01:00