Commit Graph

189 Commits

Author SHA1 Message Date
710fcefd72 Add array methods: findIndex, reduce, some, every (#49) 2018-03-25 13:13:53 +02:00
38a025950e Support parameter properties; Minor formatting 2018-03-25 00:21:58 +01:00
c80bf35747 Move fmod/fmodf to builtins and bind them to the '%' operator 2018-03-24 18:39:20 +01:00
721d77012b Math scaffolding 2018-03-24 17:18:15 +01:00
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
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
9cc0fcd611 Initial ArrayBuffer implementation; Conditional allocation within constructors; Explicit constructor return values 2018-03-23 01:47:01 +01:00
49f4d3dff1 Eliminate @builtin decorator for compatibility with TS 2018-03-21 16:29:08 +01:00
8c1847b316 Properly handle 'void' return type when checking signature compatibility 2018-03-21 01:16:46 +01:00
477669d7a3 Add min. normalized positive value (MIN_POSITIVE_VALUE) for floats (#50) 2018-03-21 01:06:56 +01:00
13ed832c5d Remove unused portable definitions
These were intended to do IEEE754 calculations, which wasn't necessary due to glueing float ops instead
2018-03-20 23:46:44 +01:00
be66abbd78 Initial static arrays of basic element types; Fixed member names in generic contexts 2018-03-20 23:41:37 +01:00
fea8e65a41 Fix 'static readonly' not being recognized as constant anymore, see #44 2018-03-19 19:36:39 +01:00
0fef69e445 Set up documentation generation 2018-03-19 01:12:18 +01:00
5eb10d404f Document the purpose of most files 2018-03-17 23:41:48 +01:00
162096bcd6 Add Array#includes and improve compatibility of Array#indexOf (#41) 2018-03-17 17:02:15 +01:00
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
2ed9fac171 Initial compile time type check builtins 2018-03-17 12:54:37 +01:00
faac3c31eb AST cleanup; Definition generators scaffolding 2018-03-17 01:37:05 +01:00
081ac768ae Give some love to the linter 2018-03-13 14:03:57 +01:00
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
423533c6b0 Implement function types / indirect calls / trampolines (#39) 2018-03-12 14:06:39 +01:00
00c4f6fa52 Unify allocator tests even more, also test arena 2018-03-04 17:25:32 +01:00
4257273d42 Make TLSF always align to 8 bytes, see #15 2018-03-04 01:31:44 +01:00
4633fdab96 Update binary expression inference, see #35; Update dependencies 2018-03-01 19:42:07 +01:00
d4c00eaba3 Revised implicit type conversions; Initial function expression compilation 2018-02-28 01:48:01 +01:00
9ef8b162a9 Also lint stdlib 2018-02-25 23:21:32 +01:00
8dc517e352 Cleanup; Initial tslint integration 2018-02-25 00:13:39 +01:00
de1c4b3da5 Add bswap/bswap16 post MVP polyfills (#34) 2018-02-19 12:35:28 +01:00
e50a23bf75 Rename wast to wat 2018-02-17 11:09:22 +01:00
3d7e8b2b7a More cleanup and a possible fix for #29 2018-02-16 11:55:13 +01:00
b1c6ccab2a Use long.js in JS and native i64 in WASM; Compile literals more thoroughly 2018-02-14 09:18:43 +01:00
c6486c461d Move TLSF to stdlib, see #15 2018-02-12 19:17:50 +01:00
2175e6fbdc Optimize some std mem methods by replacing expensive rem operations to fast bit logic (#24) 2018-02-12 18:47:32 +01:00
ad92d91f01 Move built-in declarations to actual sources; Remove declaration is null checks; Resolve calls 2018-02-09 02:31:48 +01:00
4ce8c7a6b0 More memory allocators 2018-02-02 04:21:06 +01:00
4736227879 Update binaryen to latest nightly; Source map support 2018-02-02 03:07:54 +01:00
3924aa96ae Fun fact: Can even implement parseInt/I32/I64 using generics, see #19 2018-01-30 06:05:35 +01:00
ab5a938ea0 parseInt compatibility layer around parseI64, see #19 2018-01-30 01:26:38 +01:00
1995bf9eb4 Parser fixes; Lib updates 2018-01-29 22:36:07 +01:00
9e3b6f202d Naive parseFloat 2018-01-29 07:42:40 +01:00
d3f22637ed Check radix in parseInt and use constant offsets 2018-01-29 00:33:32 +01:00
002fba3067 Initial parseInt using loads, see #8 2018-01-28 23:42:55 +01:00
896810859e Make memory allocators pluggable 2018-01-28 19:33:05 +01:00
78debee847 Improve arena allocator a bit 2018-01-28 19:14:20 +01:00
219ee81bc9 Rename heap to memory; Allocator strategies 2018-01-28 15:30:49 +01:00
1b0ed61072 Field initializers and constructors 2018-01-28 15:13:31 +01:00
b1e7b75ad7 Static operator overloads 2018-01-28 06:18:27 +01:00
5d76ba9437 Wire assertions to global abort, see #8 2018-01-27 16:23:00 +01:00
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