Commit Graph

248 Commits

Author SHA1 Message Date
ec5bb7ad51 Export function table by default and add an option to import it 2018-03-23 15:12:03 +01:00
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
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
8cfc479cc0 Fix asc not printing text format to console by default 2018-03-21 23:34:40 +01:00
00e6d613a9 Fix an issue with asc not finding bundled library files in the browser; Minor cleanup 2018-03-21 23:27:53 +01:00
d4c46b036e Fix trampolines not inheriting contextual type arguments 2018-03-21 17:47:08 +01:00
4687dc2572 Fix contextual type argument propagation when calling function expressions; Implement indirect calls to concrete functions 2018-03-21 17:17:31 +01:00
49f4d3dff1 Eliminate @builtin decorator for compatibility with TS 2018-03-21 16:29:08 +01:00
56d891583e Add a build check for PRs (#51)
This now checks that distribution files are unmodified and fails otherwise. Also checks if the author is present in the NOTICE file and prints the result, but as email addresses may vary, does not hard-fail.
2018-03-21 13:26:11 +01:00
3a8f9f1576 Add compileString convenience function to asc (#47) 2018-03-21 02:56:24 +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
2c0ddf4f80 Support 'this' in static functions, fixes #45; Fix propagation of 'ambient' flag 2018-03-20 12:02:05 +01:00
fea8e65a41 Fix 'static readonly' not being recognized as constant anymore, see #44 2018-03-19 19:36:39 +01:00
5323e64af9 Implement array functions with just an expression body 2018-03-19 01:22:19 +01:00
0fef69e445 Set up documentation generation 2018-03-19 01:12:18 +01:00
c0973433d6 Add architecture diagram to media 2018-03-18 22:29:08 +01:00
9511e2618d Fix an issue with the --lib argument in asc and allow specifying files (#42) 2018-03-18 14:11:27 +01:00
5eb10d404f Document the purpose of most files 2018-03-17 23:41:48 +01:00
d45eb93df6 Allow intercepting comments when tokenizing
It appears that this isn't necessary for the compiler at this point, but might be good to have for future tooling.
2018-03-17 19:41:48 +01:00
162096bcd6 Add Array#includes and improve compatibility of Array#indexOf (#41) 2018-03-17 17:02:15 +01:00
2dfd9aae3a Fix dist files 2018-03-17 14:56:37 +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
eef923d124 Clean up tests directory a bit 2018-03-16 15:45:18 +01:00
ee94634ffb Update test instructions 2018-03-16 14:19:47 +01:00
c17dd14fc4 Use a mechanical keyboard, they sssaid 2018-03-16 12:44:34 +01:00
5d05d978a3 Add contributing guidelines 2018-03-16 12:26:59 +01:00
8e7bad7459 Reduce unnecessary diagnostic noise 2018-03-14 15:31:50 +01:00
507482adb2 Pull more (possibly) repeated loads to locals 2018-03-14 00:27:35 +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
7ee6e1cf7b Fix compilation of immediate called function expressions 2018-03-12 22:34:40 +01:00
c93f0bb1fe Fixed a function expression parsing issue
Also uncovered a yet-to-be-fixed issue when immediately calling a returned function
2018-03-12 19:39:05 +01:00
7870e3ac18 Generic function type aliases 2018-03-12 17:44:09 +01:00
423533c6b0 Implement function types / indirect calls / trampolines (#39) 2018-03-12 14:06:39 +01:00
5d5f458ab1 Add icon files 2018-03-05 15:17:06 +01:00
36229707fe Update snap config 2018-03-04 22:26:21 +01:00
6f00bd8969 Add the packaging metadata to build the assemblyscript snap (#28) 2018-03-04 21:47:31 +01:00
d81ce5f907 Retain wrap state in parenthesized expressions; Void statements fwiw 2018-03-04 18:52:12 +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
f754b24819 Fix asc bundle with webpack 4, see #36; Function expression progress 2018-03-03 18:38:38 +01:00
a5e31200d3 Fix memory imports, see #36 2018-03-02 12:57:33 +01:00
eef8ef2cd8 Fix asc bundle AMD usage 2018-03-01 22:57:35 +01:00
4633fdab96 Update binary expression inference, see #35; Update dependencies 2018-03-01 19:42:07 +01:00