65 Commits

Author SHA1 Message Date
dcode
7693b543f4 optimize array literal init, warn on unsupported inlining 2019-03-19 08:20:10 +01:00
dcode
0932cf17ed use overloads for checked access 2019-03-18 16:09:49 +01:00
dcode
ba4c00efbd clean 2019-03-18 00:40:55 +01:00
dcode
edb2299f13 fixes 2019-03-17 12:25:54 +01:00
dcode
f21b339563 checked builtin array get, optimize abv layout 2019-03-17 08:46:26 +01:00
dcode
0c388ca4c6 make std/string test ok again 2019-03-16 14:48:22 +01:00
dcode
968b0321a0 decisions 2019-03-15 09:26:31 +01:00
dcode
3a60638f72 simplify 2019-03-14 12:46:36 +01:00
dcode
84ddd97761 if that's what's necessary 2019-03-14 06:09:49 +01:00
dcode
a5e14a0eaa srsly 2019-03-14 05:11:03 +01:00
dcode
6163a73ab5 take a step back 2019-03-14 04:33:58 +01:00
dcode
e38f627c8b more 2019-03-13 22:35:47 +01:00
dcode
6f70826e45 hmm 2019-03-13 09:05:02 +01:00
dcode
707f2dae9a more 2019-03-13 03:47:35 +01:00
dcode
e78c4c7f54 more 2019-03-13 03:09:24 +01:00
dcode
36d54d63d5 slowly but steadily 2019-03-12 04:35:01 +01:00
dcode
146dfdbb4a it's all broken 2019-03-11 23:34:20 +01:00
Max Graey
cdf40578b6 Refactor slices for better compliance (#430) 2019-02-27 21:51:07 +01:00
Max Graey
54b02c287c Fix functional Array & String methods and avoid buffer caching (#415) 2019-01-17 01:34:09 +01:00
LiaoPeng
9ec226de1b Fix possible use after free in Array#forEach if the array resizes halfway (#408) 2019-01-09 13:06:34 +01:00
dcodeIO
3ed83ef3ae Use macro style for more internal helpers; Update dist files 2018-12-08 23:38:49 +01:00
Max Graey
934f05eed9 Optimize array functional loops (#359) 2018-12-07 15:37:33 +01:00
Daniel Wirtz
ebae7cbd73
Implement optional type parameters (#360)
* Add a NATIVE<T> macro type to simplify use of a native WebAssembly type
* Add default type parameters for internal helpers for explicit loads and stores
* Unify loadUnsafe/loadUnsafeWithOffset etc. into one
* Renamed loadUnsafe etc. into just LOAD, like a macro
* Implement parsing of index signatures, but ignore them, for properly linting code
* Refactor TypedArray<T> to use macros
2018-12-07 14:33:32 +01:00
Max Graey
3c5c2cef80 Fix implementation of Array#splice (#347) 2018-11-29 15:41:42 +01:00
dcodeIO
04a0cb8de7 Remove left-over line in std Array 2018-11-12 12:45:44 +01:00
Max Graey
1882679807 Implement Array.isArray and Array#copyWithin (#331) 2018-11-12 07:45:40 +01:00
LiaoPeng
d864977a1a Add Array#concat and add a return type for Array#push (#214) 2018-10-30 15:07:53 +01:00
Max Graey
83fa12164f Add TypedArray#fill (#274) 2018-10-26 18:28:31 +02:00
Max Graey
53b030fed5 Add Array#join and Array#toString + dtoa (#275) 2018-10-01 22:57:56 +02:00
Max Graey
3f035395cd Add Array#fill (#250) 2018-09-19 00:59:22 +02:00
Max Graey
947cee08c7 Implement <TypedArray>#sort and improve default comparator (#208) 2018-08-04 15:30:03 +02:00
dcodeIO
631478c7c9 Rework static memory segment creation; Fix stdlib gc hooks not marking own fields; Align everything to 8 bytes that might be touched by GC 2018-08-04 00:36:59 +02:00
Daniel Wirtz
dc0f271fc2
Initial GC integration (#196) 2018-08-02 18:23:02 +02:00
dcodeIO
a1b75b69b7 Rename memory instructions; Rework constant handling 2018-07-18 23:49:32 +02:00
Max Graey
29081b6323 Assert that comparator is not null in Array#sort (#155) 2018-07-14 14:56:05 +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
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
Max Graey
fac0fc59b5 Implement Array#map, Array#forEach, Array#filter, Array#reduceRight (#81) 2018-04-22 22:15:38 +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
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
Igor
710fcefd72 Add array methods: findIndex, reduce, some, every (#49) 2018-03-25 13:13:53 +02:00
dcodeIO
4adb69f73a Binary expression operator overloads for +/==; Check allocation flow in ternary expressions; Cache empty array buffers; Sealed decorator for non-derivable internals 2018-03-23 12:45:29 +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
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
9ef8b162a9 Also lint stdlib 2018-02-25 23:21:32 +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