-
Notifications
You must be signed in to change notification settings - Fork 696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🛤 Exception handling #1078
Comments
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
This is a tracking issue for a post-MVP feature
It will be updated as the issue progresses.
Topic Exception handling
Champion Heejin Ahn (@aheejin)
Status In progress
Phase Feature proposal
Linked issues #417
Linked repositories github.com/WebAssembly/exception-handling
Details
The WebAssembly MVP supports four no-exception modes for C++:
throw
toabort()
.-fno-exceptions
mode (note caveats).These modes are suboptimal for code bases which rely on C++ exception handling, but are perfectly acceptable for C code, or for C++ code which avoids exceptions. This doesn't prevent developers from using the C++ standard library: their code will function correctly (albeit slower at times) as long as it doesn't encounter exceptional cases.
Post-MVP, WebAssembly will gain support for zero-cost exception handling.
In turn, this can be used to implement
setjmp
/longjmp
, and can enable all of the defined behavior ofsetjmp
/longjmp
, namely unwinding the stack without calling C++ destructors. It does not, however, allow the undefined behavior case of jumping forward to a stack that was already unwound which is sometimes used to implement coroutines. Coroutine support is being considered separately.The text was updated successfully, but these errors were encountered: