61 Commits

Author SHA1 Message Date
dcode
fbba76ef2c bleeding edge binaryen 2019-05-23 13:20:10 +02:00
dcode
51fdf9db4f fix 2019-05-23 03:08:25 +02:00
dcode
da4a7751fd optimize logical and/or, initial null checking in flows 2019-04-09 03:04:45 +02:00
dcode
c16c19e18d unify runtime header 2019-04-08 23:22:13 +02:00
dcode
c3ff3f2376 inherent acylic data structure detection
this will become useful for the pure collector eventually
2019-04-08 03:49:41 +02:00
dcode
e1070cee86 rtti & refactoring 2019-04-06 20:17:48 +02:00
dcode
a9e4813798 implement __runtime_flags 2019-04-05 01:59:01 +02:00
dcode
25c5dfddad slim down runtime 2019-04-04 02:25:22 +02:00
dcode
85f3fc54a7 runtime api 2019-04-03 21:47:38 +02:00
dcode
50c49e4275 make it 'runtime.instanceof' 2019-04-03 00:26:41 +02:00
dcode
a639a42f0d initial __runtime_instanceof 2019-04-02 21:30:47 +02:00
dcode
e1bd0050e2 directize more (eliminate table use) 2019-04-02 16:18:44 +02:00
dcode
3bcd32f3ba directize 2019-04-02 10:12:57 +02:00
dcode
1ada854830 some cleanup 2019-04-01 22:23:11 +02:00
dcode
27f1905510 runtime integration and flag 2019-03-31 21:58:42 +02:00
dcode
e36722f2e6 unify mem/ref interface 2019-03-27 17:21:52 +01:00
dcode
bb1609c9ea baseline 2019-03-27 14:43:35 +01:00
dcode
3146f8f9e0 use gc interface directly, document 2019-03-26 23:35:08 +01:00
dcode
7c0dc66849 guard, info on never null, more general array rt 2019-03-22 15:43:07 +01:00
dcode
9b664dc175 harden / elaborate on makeCallInline 2019-03-20 14:16:18 +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
0932cf17ed use overloads for checked access 2019-03-18 16:09:49 +01:00
dcode
f21b339563 checked builtin array get, optimize abv layout 2019-03-17 08:46:26 +01:00
dcode
e63c6bd388 local flow flags, see what works 2019-03-17 01:35:44 +01:00
Daniel Wirtz
4e1bba3a24
Use Binaryen's function signature naming scheme (#522) 2019-03-01 00:01:23 +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
Daniel Wirtz
2f1a6c44ce
Add SIMD prerequisites (#469) 2019-02-07 15:26:26 +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
cd1cfe6957 Update Binaryen to latest and rebuild dist files 2019-02-05 17:12:10 +01:00
Max Graey
54b02c287c Fix functional Array & String methods and avoid buffer caching (#415) 2019-01-17 01:34:09 +01:00
Max Graey
8e61e0ead8 Improve reallocateUnsafe and properly free unmanaged objects (#368) 2018-12-08 23:54:45 +01:00
dcodeIO
3ed83ef3ae Use macro style for more internal helpers; Update dist files 2018-12-08 23:38:49 +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
d62d84521e Reduce inlining verbosity
With debug info and source maps in place there is not much value anymore in emitting explicitly named blocks.
2018-11-12 14:54:08 +01:00
Max Graey
1882679807 Implement Array.isArray and Array#copyWithin (#331) 2018-11-12 07:45:40 +01:00
Daniel Wirtz
2bdc2a72f1
Use stack IR when emitting text format (#312) 2018-11-08 08:04:24 +01:00
dcodeIO
6f8a0fe03a Rework compileUnaryPostfixExpression
Previously this tried to reuse too much code, making it hard to implement operator overloading
2018-10-29 20:06:21 +01:00
Daniel Wirtz
f7c734789e
Update Binaryen to latest; Various fixes 2018-10-11 08:49:08 +02:00
Max Graey
53b030fed5 Add Array#join and Array#toString + dtoa (#275) 2018-10-01 22:57:56 +02:00
dcodeIO
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
Max Graey
947cee08c7 Implement <TypedArray>#sort and improve default comparator (#208) 2018-08-04 15:30:03 +02:00
dcodeIO
631478c7c9 Rework static memory segment creation; Fix stdlib gc hooks not marking own fields; Align everything to 8 bytes that might be touched by GC 2018-08-04 00:36:59 +02:00
Daniel Wirtz
dc0f271fc2
Initial GC integration (#196) 2018-08-02 18:23:02 +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
a1b75b69b7 Rename memory instructions; Rework constant handling 2018-07-18 23:49:32 +02:00
dcodeIO
7a8995b18b Properly inline getters; Simplify blocks when last statement returns 2018-06-22 15:26:59 +02:00
dcodeIO
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
dcodeIO
ef9b43740d Eliminate leftover temporary function types using latest Binaryen 2018-05-09 16:33:42 +02:00