356 Commits

Author SHA1 Message Date
dcode
3f35a9209f tackle unreachables
suspend compilation on break, optimize stack ir, detect fallthrough instead of terminate
2019-06-10 08:54:41 +02:00
dcode
56dbe77a04 Rework loop compilation / flows 2019-06-09 14:13:57 +02:00
Daniel Wirtz
0484a6b740
Implement reference counting (#592) 2019-06-05 23:15:39 +02:00
Daniel Wirtz
5b58b9aa8d
Update Binaryen to latest (#571) 2019-04-08 08:18:21 +02:00
Daniel Wirtz
527d73ece8
Use fully qualified names in generic types (#544)
* Also fixes infinite parser loops
* Also implements command line option forwarding to node.js
2019-03-25 21:58:19 +01:00
Max Graey
74ce9bf386 Fix unreachable insertion when returning none (#557) 2019-03-24 10:18:05 +01:00
Max Graey
f9a8d2f1db Use lazy initializations for decorators and type parameters in parser (#554) 2019-03-22 12:20:19 +01:00
Daniel Wirtz
858cca5a38
Fix arrow function body parsing precedence (#546) 2019-03-18 17:11:02 +01:00
Daniel Wirtz
fd99589527
Fix enum initialization (#545) 2019-03-18 04:54:44 +01:00
Daniel Wirtz
252b843c4b
General cleanup (#525)
* Cleans up and trims the overly large builtins file by ~1600 lines
* Properly propagate inline assembler-like argument types
* Use https in examples
* Reformat README
2019-03-08 14:24:48 +01:00
Daniel Wirtz
8e5b9c734b
Add atomic definitions (#524) 2019-03-02 10:14:09 +01:00
Daniel Wirtz
4e1bba3a24
Use Binaryen's function signature naming scheme (#522) 2019-03-01 00:01:23 +01:00
Daniel Wirtz
e1f1a3b49c
Implement v128 instructions (#508) 2019-02-28 17:36:22 +01:00
Max Graey
aad263e670 Add isArrayLike builtin (#453) 2019-02-27 21:47:52 +01:00
Daniel Wirtz
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
dcode
2945af6557 Don't reset nested unchecked contexts, fixes #515 2019-02-27 17:10:20 +01:00
Max Graey
65c799c925 Speedup some compiler routines (#441) 2019-02-22 14:03:33 +01:00
dcode
cc5522d6cc Legalize external decorator for generic functions 2019-02-22 08:25:41 +01:00
Daniel Wirtz
f318d68383
Add isFunction and isNullable builtins (#504) 2019-02-22 01:11:05 +01:00
Daniel Wirtz
3b5b96f496
Fix declaration mismatch in generated constructors (#505) 2019-02-22 00:50:29 +01:00
dcode
4be78147e6 Update dependencies and dist files 2019-02-21 23:04:41 +01:00
dcode
34d86a0d6a Replace more workarounds with actual lazy compilation in stdlib 2019-02-21 05:42:33 +01:00
dcode
8d2194f045 Require exact type in instanceof basicType, fixes #493 2019-02-21 02:09:06 +01:00
Nidin Vinayakan
951b6f9f45 Add shared memory support to compiler (#494) 2019-02-21 00:22:25 +01:00
Daniel Wirtz
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
dcode
e623786b42 Emit proper diagnostic when returning void from a function with a return value, fixes #475 2019-02-08 16:00:35 +01:00
dcode
47b2f33564 Emit a better error when expecting a compile-time constant, fixes #222 2019-02-07 23:04:57 +01:00
Daniel Wirtz
1bd1d26152
Put atomics behind a feature flag (#470) 2019-02-07 18:21:09 +01:00
Daniel Wirtz
2f1a6c44ce
Add SIMD prerequisites (#469) 2019-02-07 15:26:26 +01:00
Nidin Vinayakan
7ce3296b5e Add atomic built-ins (#440) 2019-02-07 15:25:49 +01:00
Daniel Wirtz
f551bc78e1
Implement bulk memory operations (#467) 2019-02-07 11:40:23 +01:00
Daniel Wirtz
831054dfd3
Rework inlining logic (#463) 2019-02-06 23:42:43 +01:00
dcode
c95c0f5fbe Emit diagnostic when redeclaring a local name, fixes #452 2019-02-03 13:37:32 +01:00
Max Graey
4829f3a3e4 Add ArrayBuffer.isView and rework Array.isArray (#431) 2019-02-03 10:41:04 +01:00
Daniel Wirtz
2131c51932
Rework constructor handling (#446) 2019-02-02 16:03:21 +01:00
Daniel Wirtz
75328f3feb
Implement calls to 'super()' (#445) 2019-01-31 10:35:49 +01:00
dcode
65c4acd2d4 Skip over duplicate '| null's on nullable types 2019-01-30 10:56:22 +01:00
dcode
7877661f35 Emit an error when declaring a nullable basic type (for now) 2019-01-30 10:22:15 +01:00
Daniel Wirtz
d843772314
Implement non-null assertions (#443) 2019-01-30 09:56:13 +01:00
dcode
2fe228ff00 Cache strings shared with Binaryen 2019-01-27 02:08:04 +01:00
Nidin Vinayakan
b7c7be1fe9 Add shared memory definitions and initial API (#435) 2019-01-25 10:50:55 +01:00
dcode
df3b2befd7 Support type names with enclosed dots, see #423 2019-01-17 00:37:28 +01:00
Max Graey
72dc26e255 Optimize builtin abs for integers (#420) 2019-01-15 18:22:24 +01:00
dcode
2aa5c437c7 Properly set up memory if memoryBase is specified even if there are no static segments, fixes #414 2019-01-11 21:54:59 +01:00
Daniel Wirtz
f714afab3c
Implement explicit this type (#373)
* Add backing classes for basic types (I32...)
* Move standard numeric constants to backing classes
2019-01-09 12:45:29 +01:00
dcodeIO
d5f72e32d7 Add initial definitions for SIMD ops 2018-12-14 08:17:08 +01:00
dcodeIO
b585703eae Replace more RawGit links 2018-12-08 04:01:17 +01:00
Daniel Wirtz
ebae7cbd73
Implement optional type parameters (#360)
* Add a NATIVE<T> macro type to simplify use of a native WebAssembly type
* Add default type parameters for internal helpers for explicit loads and stores
* Unify loadUnsafe/loadUnsafeWithOffset etc. into one
* Renamed loadUnsafe etc. into just LOAD, like a macro
* Implement parsing of index signatures, but ignore them, for properly linting code
* Refactor TypedArray<T> to use macros
2018-12-07 14:33:32 +01:00
dcodeIO
aedc821c09 Process backlog once more after Transform#afterParse, see #356 2018-12-03 17:22:01 +01:00
dcodeIO
6ed45bee98 Expose the full API for now, see #356
Some things might be more useful than others, but we can decide on that later.
2018-12-02 23:46:32 +01:00