v0.9.0
Breaking changes
- The explicit start function generated with
--explicitStarthas been renamed to_start(was__start) to match WASI. - The
__setargchelper to set the number of arguments to a varargs call has been removed and replaced with an exported mutable global__argumentsLength. The loader has been updated accordingly. - For consistency, the loader's
__getInt8Arrayetc. functions now copy, and new__getInt8ArrayViewfunctions with the old behavior have been introduced. - The
call_indirectbuiltin has been removed due to expected problems with closures. - Distribution files are now being built with
ES2016as the target, exposing ES classes instead of ES5 prototypes.
New features
- Binaryen has AssemblyScript-specific optimization passes now targeting reference counting.
- Optimization pass order is no longer inherited from Binaryen but has been customized to account for AS specifics.
- Tables can now be exported using the
--exportTableflag. - The implementations of the Math functions
exp,exp2,log,log2andpowhave been replaced with faster variants. - New standard library functions:
String#toUpperCase,String#toLowerCase,String#localeCompare.TypedArray#set - The stub runtime now exports the
__resethelper to clear the heap externally. - Added support for the SIMD
avgr_ufamily of instructions. - Updated the WASI implementation to
wasi_snapshot(preview1). - The type of an array literal can now be inferred from its contents.
- The compiler can now detect if the entire program is acyclic (no cyclic classes), omitting unnecessary parts of the GC in this case.
And, of course, lots of fixes.