Skip to content

Releases: WebAssembly/binaryen

version_89: Add basic exception handling support (#2282)

12 Aug 16:39
e2f49d8

Choose a tag to compare

This adds basic support for exception handling instructions, according
to the spec:
https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md

This PR includes support for:
- Binary reading/writing
- Wast reading/writing
- Stack IR
- Validation
- binaryen.js + C API
- Few IR routines: branch-utils, type-updating, etc
- Few passes: just enough to make `wasm-opt -O` pass
- Tests

This PR does not include support for many optimization passes, fuzzer,
or interpreter. They will be follow-up PRs.

Try-catch construct is modeled in Binaryen IR in a similar manner to
that of if-else: each of try body and catch body will contain a block,
which can be omitted if there is only a single instruction. This block
will not be emitted in wast or binary, as in if-else. As in if-else,
`class Try` contains two expressions each for try body and catch body,
and `catch` is not modeled as an instruction. `exnref` value pushed by
`catch` is get by `pop` instruction.

`br_on_exn` is special: it returns different types of values when taken
and not taken. We make `exnref`, the type `br_on_exn` pushes if not
taken, as `br_on_exn`'s type.

version_88: Compile Linux release binaries with Clang (#2274)

01 Aug 15:57

Choose a tag to compare

This fixes #2273 for... unknown reasons. The tl;dr; is that the current
release binaries built in this Alpine container seem to segfault when
run over some wasm files when an exception is thrown, but clang-built
binaries magically seems to not segfault!

version_87

15 Jul 22:37
c7e9271

Choose a tag to compare

[fuzzing] Give each testcase handler a list of feature flags it requi…

version_86

10 Jul 10:13

Choose a tag to compare

Create version_86

version_85: Initial tail call implementation (#2197)

08 Jul 17:47
2a138fa

Choose a tag to compare

Including parsing, printing, assembling, disassembling.

TODO:

 - interpreting
 - effects
 - finalization and typing
 - fuzzing
 - JS/C API

1.38.32

20 May 16:48
677808a

Choose a tag to compare

Fix AvoidReinterprets on reinterpreted loads of fewer than the full s…

version_84

10 May 21:18
70434ef

Choose a tag to compare

Generate `dynCall` function for all signature used by `invoke` functi…

version_83

25 Apr 18:52
ef6020c

Choose a tag to compare

wasm2js: optimize loops and eqz (#2051)

1.38.31

24 Apr 14:53
5d3fcff

Choose a tag to compare

wasm2js: emit quoted properties for the exports, to support closure c…

version_82

22 Apr 18:49
f87de2a

Choose a tag to compare

wasm-emscripten-finalize: Handle relocatable code in AsmConstWalker (…