4e1bba3a24
Use Binaryen's function signature naming scheme ( #522 )
2019-03-01 00:01:23 +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
cd1cfe6957
Update Binaryen to latest and rebuild dist files
2019-02-05 17:12:10 +01:00
54311fd0ab
Improve bswap implementation ( #323 )
2018-11-09 17:51:32 +01:00
2bdc2a72f1
Use stack IR when emitting text format ( #312 )
2018-11-08 08:04:24 +01:00
f7c734789e
Update Binaryen to latest; Various fixes
2018-10-11 08:49:08 +02:00
16d1a833dd
Always add a null function at table index zero
...
This allows function references (a table index internally) to be nullable
2018-09-17 01:48:35 +02:00
27e61f8f67
Remove noMemory option; Omit 'start' if 'main' is present; Unwrap more unnecessary blocks
2018-06-27 19:03:39 +02:00
7a8995b18b
Properly inline getters; Simplify blocks when last statement returns
2018-06-22 15:26:59 +02:00
525795b354
Infer u32 from 32-bit integer literals if MSB is set
2018-06-21 22:47:37 +02:00
73417a9a06
Move 'abort' out of builtins and make it overridable
...
Now defaults to 'env.abort' as imported in lib/env.ts, but can be overridden through '--use abort=someThingElseOrNothingAtAll'
2018-05-21 18:48:29 +02:00
6c0a5c47d9
Update Binaryen and take care of WebAssembly/binaryen#1547
2018-05-14 16:55:55 +02:00
ef9b43740d
Eliminate leftover temporary function types using latest Binaryen
2018-05-09 16:33:42 +02:00
25a1f6230a
Suppress some unnecessary blocks and nops; Fix compilation of always 'break'ing 'do's
2018-05-06 05:46:35 +02:00
50f6c1c460
Update internal ABI to zero/sign-extend where necessary only ( #87 )
2018-05-06 00:00:54 +02:00
391db28fe2
Always try to eliminate branches if tree-shaking is enabled
2018-04-24 23:11:11 +02:00
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
e75d006d26
Implement Math/Mathf.pow
2018-03-26 03:50:06 +02: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
423533c6b0
Implement function types / indirect calls / trampolines ( #39 )
2018-03-12 14:06:39 +01:00
d81ce5f907
Retain wrap state in parenthesized expressions; Void statements fwiw
2018-03-04 18:52:12 +01:00
d4c00eaba3
Revised implicit type conversions; Initial function expression compilation
2018-02-28 01:48:01 +01:00
de1c4b3da5
Add bswap/bswap16 post MVP polyfills ( #34 )
2018-02-19 12:35:28 +01:00