diff options
author | Asumu Takikawa <asumu@igalia.com> | 2021-02-09 12:12:01 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-10 05:12:01 +0900 |
commit | 036a632a24679062e7fc891e7743195139bfa0a9 (patch) | |
tree | 6e639f32f3d4d1dee55280709cc5607153e3002f /src/interp/istream.cc | |
parent | 09ac53e41d959ce8e14e703e627327971e67f6d3 (diff) | |
download | wabt-036a632a24679062e7fc891e7743195139bfa0a9.tar.gz wabt-036a632a24679062e7fc891e7743195139bfa0a9.tar.bz2 wabt-036a632a24679062e7fc891e7743195139bfa0a9.zip |
Update exception handling support to current proposal (#1596)
This PR updates the support of exception handling to the latest proposal (that is compatible with future 2-phase exception handling) described in https://github.com/WebAssembly/exception-handling/pull/137 and https://github.com/WebAssembly/exception-handling/pull/143.
* Adds back tagged `catch $e`, `catch_all`, and `rethrow N` from a previous version of wabt, but with updates to match the current spec (e.g., `catch_all` shares an opcode with `else`, `rethrow`'s depth indexes only catch blocks, etc).
* Adds `unwind` and `delegate` instructions.
* Removes `exnref` and `br_on_exn`.
* Updates relevant tests.
There are some details that could still change (e.g., maybe how `delegate`'s depth is validated), but I'd be happy to submit further PRs if the spec details change.
Diffstat (limited to 'src/interp/istream.cc')
-rw-r--r-- | src/interp/istream.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/interp/istream.cc b/src/interp/istream.cc index e4693c11..6c531a88 100644 --- a/src/interp/istream.cc +++ b/src/interp/istream.cc @@ -692,8 +692,8 @@ Instr Istream::Read(Offset* offset) const { break; case Opcode::Block: - case Opcode::BrOnExn: case Opcode::Catch: + case Opcode::Delegate: case Opcode::Else: case Opcode::End: case Opcode::If: @@ -703,6 +703,7 @@ Instr Istream::Read(Offset* offset) const { case Opcode::Rethrow: case Opcode::Throw: case Opcode::Try: + case Opcode::Unwind: case Opcode::ReturnCall: // Not used. break; |