Breaking changes
- Added a
seed
import (alongabort
andtrace
) for seeding the random number generator - Arrays no longer inherit from ArrayBufferView, but are now distinct
- The loader API now more closely aligns with the WebAssembly API
- Various compiler API changes (i.e. decoupled the parser from the program)
- Classes initialized from object literals can no longer define a constructor
- Moved examples from the main repo to their own repo
- Modules now become validated by default (disable with
--noValidate
,--validate
is gone) - Reworked memory options (added
--noExportMemory
,--initialMemory
,--maximumMemory
, with--sharedMemory
now being a boolean flag) - Renamed the
--asmjsFile
command line option to--jsFile
(alias:-j
)
Improvements
- Simplified WASI integration via
import "wasi"
(implements abort, trace, seed) - Implemented virtual overloading and interfaces (consider this minimal viable)
- Reworked optimization pass pipeline / more aggressive inlining
- Added support for Binaryen's
lowMemoryUnused
feature - Added
--lowMemoryLimit
option for embedded scenarios with less than one page of memory - Added support for
StaticArray
to the loader - Non-MVP types are now always present to aid conditional compilation (i.e. same source, with and without SIMD)
- Added
Array<T>#flat
- Updated stdlib to Unicode 13.0.0
- Added a
--yes
option to asinit to accept all prompts - Added
memory.data
to explicitly create static memory segments - Expose
setArgumentsLength
(for varargs calls) only when required - Added
v128.pmin<T>
,v128.pmax<T>
,v128.abs<T>
,v128.bitmask<T>
incl. their respective inline-assembler variants
Relevant fixes
- Fixed column numbers in diagnostics being off by one
- Made
asc
respect absolute output paths - Fixed various issues with object literal compilation
- Fixed WASI struct sizes to match the specification
- Fixed default export issues