WebAssembly / WebAssembly/binaryen

Support `try_table` in Flatten

Open
#8,372 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
8.6k
Forks
885
Avg merge
1d 19h
Merged PRs (30d)
69

Description

Parsing a WASM module using wasm-opt containing a try_table instruction yields the error [parse exception: bad node code 31 (at 0:9801)]. --debug prints the contents of the module up to the end of the function before the one containing the try_table. --enable-exception-handling is on and the throw instruction compiles perfectly fine.
I searched quite a lot but couldn't find any information regarding this, is there any way to get modern exceptions working with wasm-opt?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the wasm-opt parse failure with a WASM module containing a try_table instruction and --enable-exception-handling enabled; use --debug to compare it with the preceding function and the working throw instruction. Trace the Flatten handling for try_table and verify that wasm-opt can parse and process the module successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.