Commit Graph

59 Commits

Author SHA1 Message Date
3146f8f9e0 use gc interface directly, document 2019-03-26 23:35:08 +01:00
05a35f42f6 more 2019-03-16 11:24:13 +01:00
968b0321a0 decisions 2019-03-15 09:26:31 +01:00
4e1bba3a24 Use Binaryen's function signature naming scheme (#522) 2019-03-01 00:01:23 +01:00
e1f1a3b49c Implement v128 instructions (#508) 2019-02-28 17:36:22 +01:00
e8b0767143 Infer function expressions in matching contexts (#514)
* legalizes omitting types on function expressions within function type contexts
* legalizes omitting any number of arguments
2019-02-27 21:45:36 +01:00
0c64f21250 Rework resolver (#489)
* Rework IR and resolver to use nested lookup tables
* Integrate types into IR
* Make components prefer IR, slimmed down AST
* Implement `export *`
* Add `@lazy` annotation and remove `--noTreeShaking`
* Add `@start` annotation and remove magic `main`
* Related refactoring, cleanup and docs
2019-02-21 00:11:22 +01:00
2f1a6c44ce Add SIMD prerequisites (#469) 2019-02-07 15:26:26 +01:00
d843772314 Implement non-null assertions (#443) 2019-01-30 09:56:13 +01:00
f7c734789e Update Binaryen to latest; Various fixes 2018-10-11 08:49:08 +02:00
dc0f271fc2 Initial GC integration (#196) 2018-08-02 18:23:02 +02:00
c74eed2bd8 Add initial std Symbol; Fix some type inference issues 2018-06-21 19:42:18 +02:00
47f2e0950a Make 'instanceof' behave like TS if the lhs is nullable 2018-06-09 02:01:45 +02:00
1bf0ca6525 Add a mechanism to enable additional (experimental) features and start with sign extension operations; Hashing experimentation 2018-05-08 00:36:19 +02:00
50f6c1c460 Update internal ABI to zero/sign-extend where necessary only (#87) 2018-05-06 00:00:54 +02:00
4929fca363 Move some numeric builtins to stdlib; Minor refactoring 2018-04-17 02:50:38 +02:00
81223977d0 Fix external names of class exports and similar; Support a few more kinds in TSDBuilder, see #74 2018-04-15 00:34:19 +02:00
ee73a4d28f Initial type parameter inference, see #61
This catches the most common cases but doesn't yet implement inference involving the return type because some prequesites are not yet in place (see test case).
2018-04-13 12:25:27 +02:00
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
00e6d613a9 Fix an issue with asc not finding bundled library files in the browser; Minor cleanup 2018-03-21 23:27:53 +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
8c1847b316 Properly handle 'void' return type when checking signature compatibility 2018-03-21 01:16:46 +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
faac3c31eb AST cleanup; Definition generators scaffolding 2018-03-17 01:37:05 +01:00
507482adb2 Pull more (possibly) repeated loads to locals 2018-03-14 00:27:35 +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
423533c6b0 Implement function types / indirect calls / trampolines (#39) 2018-03-12 14:06:39 +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
8dc517e352 Cleanup; Initial tslint integration 2018-02-25 00:13:39 +01:00
3d7e8b2b7a More cleanup and a possible fix for #29 2018-02-16 11:55:13 +01:00
a7e815dcec TLSF: Coalesce pages by extending the tail block, see #15 2018-02-06 06:47:37 +01:00
74498852f0 Utilities and an initial webpack loader 2018-01-29 17:12:02 +01:00
2c009c67d3 Initial element access compilation; Carefully approaching std array 2018-01-13 23:38:07 +01:00
2df318a7ec Implicitly alias stdlib exports as program globals, see #8 2018-01-12 15:36:17 +01:00
3980e53bb7 Let the optimizer decide what it takes to become a select 2018-01-12 05:03:25 +01:00
d89703cdad Transition to TypeFlags for specific type checks; Optimize logical ops a bit 2018-01-10 23:19:14 +01:00
fc777b3a89 Builtins rewrite with type parameter inference; Small integer math optimizations; Switchify 2018-01-10 13:09:05 +01:00
2d0f5f3087 Comma expressions fwiw 2018-01-05 01:55:59 +01:00
3add4624c5 Initial instance methods and field layout; More cleanup 2018-01-01 20:27:21 +01:00
2ed3c22031 Cleanup: Make use of type inference and use 'var' in functions to match actual WebAssembly semantics 2017-12-28 04:09:40 +01:00
7795d48d98 Namespaced imports 2017-12-27 22:38:32 +01:00
ba61a5e414 Getters & setters (static); Instantiate compiler tests; Cleanup 2017-12-27 02:37:53 +01:00
5c4bf1af76 Less prose; Update i64 example; More options for asc 2017-12-25 12:08:51 +01:00
4baff99125 Refactoring; Add tslint fwiw 2017-12-24 03:19:47 +01:00
ca9c79185b Basic type inference 2017-12-23 13:48:04 +01:00
aa563a9a5a Cleanup; Documentation 2017-12-18 03:46:36 +01:00
2720515982 More stdlib setup 2017-12-16 17:54:53 +01:00