17 Commits

Author SHA1 Message Date
dcode
7c0dc66849 guard, info on never null, more general array rt 2019-03-22 15:43:07 +01:00
dcode
3fc9f550ad more general gc hooks? 2019-03-21 10:44:14 +01:00
dcode
81039c4167 FixedArray experimentation 2019-03-19 15:43:05 +01:00
dcode
74789c9c1e aliased makeCallInline, unmanaged rt alloc 2019-03-19 14:40:37 +01:00
dcode
2d76da9465 alias locals when inlining a tail call 2019-03-17 00:11:16 +01:00
dcode
058dc8d4fa static array stuff 2019-03-15 13:13:48 +01:00
dcode
968b0321a0 decisions 2019-03-15 09:26:31 +01:00
dcode
d9a5681489 arraybufferview 2019-03-11 07:45:47 +01:00
Daniel Wirtz
e1f1a3b49c
Implement v128 instructions (#508) 2019-02-28 17:36:22 +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
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
dcodeIO
0e33806cf6 Add a way to ensure that lazy globals are resolved, fixes #355
This only affects static fields that currently must have a type annotation, while it wouldn't work if there wasn't an annotated type, like on normal globals, which aren't compiled lazily, though. Must be revisted if requirements on type annotations on fields ever become relaxed.
2018-12-01 13:31:37 +01:00
Andy Hanson
0bb5cb829e Support definite assignment assertion x!: i32 (#260) 2018-10-27 18:29:59 +02:00
dcodeIO
26e46f6f86 Reintroduce builtin decorator so these can appear anywhere in stdlib again
Avoids wrapping an undocumented function within 'memory.size' for example.
2018-07-19 02:10:04 +02:00
dcodeIO
9e508de69a Implement object literal parsing; Instantiate classes from object literals
Essentially, if the contextual type is a class with a constructor that takes zero arguments or doesn't have a constructor at all, an object literal can be used to initialize a new instance of that class with preset values.
2018-07-14 04:00:04 +02:00
dcodeIO
27e61f8f67 Remove noMemory option; Omit 'start' if 'main' is present; Unwrap more unnecessary blocks 2018-06-27 19:03:39 +02:00
dcodeIO
188b4e48ce Try parsing signatures only if node is callable, see #149; Minor refactoring 2018-06-24 01:04:24 +02:00