dcodeIO
391db28fe2
Always try to eliminate branches if tree-shaking is enabled
2018-04-24 23:11:11 +02:00
Max Graey
fac0fc59b5
Implement Array#map, Array#forEach, Array#filter, Array#reduceRight ( #81 )
2018-04-22 22:15:38 +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
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
Max Graey
b7ef21950b
Add String#repeat method ( #67 )
2018-04-07 18:59:26 +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
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
Max Graey
3d1f181961
Add Mathf missed defs ( #60 )
2018-03-31 17:15:59 +02:00
Daniel Wirtz
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
dcodeIO
e47a130771
More math
2018-03-26 23:46:41 +02:00
dcodeIO
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
dcodeIO
e75d006d26
Implement Math/Mathf.pow
2018-03-26 03:50:06 +02:00
dcodeIO
e26734ef90
Implement Math/Mathf.exp; Initial math test suite
2018-03-25 17:42:56 +02:00
Igor
710fcefd72
Add array methods: findIndex, reduce, some, every ( #49 )
2018-03-25 13:13:53 +02:00
dcodeIO
c80bf35747
Move fmod/fmodf to builtins and bind them to the '%' operator
2018-03-24 18:39:20 +01: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
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
dcodeIO
9cc0fcd611
Initial ArrayBuffer implementation; Conditional allocation within constructors; Explicit constructor return values
2018-03-23 01:47:01 +01:00
dcodeIO
49f4d3dff1
Eliminate @builtin
decorator for compatibility with TS
2018-03-21 16:29:08 +01:00
dcodeIO
8c1847b316
Properly handle 'void' return type when checking signature compatibility
2018-03-21 01:16:46 +01:00
Max Graey
477669d7a3
Add min. normalized positive value (MIN_POSITIVE_VALUE) for floats ( #50 )
2018-03-21 01:06:56 +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
Igor
162096bcd6
Add Array#includes and improve compatibility of Array#indexOf ( #41 )
2018-03-17 17:02:15 +01:00
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
2ed9fac171
Initial compile time type check builtins
2018-03-17 12:54:37 +01:00
dcodeIO
9ef8b162a9
Also lint stdlib
2018-02-25 23:21:32 +01:00
Max Graey
de1c4b3da5
Add bswap/bswap16 post MVP polyfills ( #34 )
2018-02-19 12:35:28 +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
3924aa96ae
Fun fact: Can even implement parseInt/I32/I64 using generics, see #19
2018-01-30 06:05:35 +01:00
dcodeIO
ab5a938ea0
parseInt compatibility layer around parseI64, see #19
2018-01-30 01:26:38 +01:00
dcodeIO
1b0ed61072
Field initializers and constructors
2018-01-28 15:13:31 +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
a257b6e529
Load/store constant offset utility
2018-01-21 16:34:50 +01:00
dcodeIO
f2ba4b4a76
Filler implementation for std Set
2018-01-15 00:08:06 +01:00
dcodeIO
49d29fc9f2
More std array
2018-01-14 21:17:43 +01:00
dcodeIO
ad469ca445
Polyfill move_memory and set_memory and remove Heap
2018-01-14 02:30:20 +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
fc777b3a89
Builtins rewrite with type parameter inference; Small integer math optimizations; Switchify
2018-01-10 13:09:05 +01:00
dcodeIO
1221ff129d
More built-in constants; Get/set parsing fixes; I64.toF64 fixes
2018-01-02 21:41:25 +01:00
dcodeIO
3add4624c5
Initial instance methods and field layout; More cleanup
2018-01-01 20:27:21 +01:00
dcodeIO
4207f6460d
Warn on constant locals not being actual constants; Simplify changetype
2017-12-28 17:16:37 +01:00
dcodeIO
ad298c7bea
Asterisk imports parsing; Pussyfooting around stdlib
2017-12-23 00:48:54 +01:00
dcodeIO
666ba54e42
Heap fill/compare; Std string experiments
2017-12-21 10:14:53 +01:00
dcodeIO
2720515982
More stdlib setup
2017-12-16 17:54:53 +01:00