aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Wagner <mail@lukewagner.name>2015-04-30 13:37:31 -0500
committerLuke Wagner <mail@lukewagner.name>2015-04-30 13:37:31 -0500
commit31bbe91dcde90a488ae1b4e5c28bcd9602751ecc (patch)
treec0f05f68ef634f4055974772e12593d76c0d9b03
parent665e0d2008b6c8f4f6eebd05e85117201200de5c (diff)
parent319f547467938026dd3ff49d224ecd8198af5f7d (diff)
downloadnanowasm-design-31bbe91dcde90a488ae1b4e5c28bcd9602751ecc.tar.gz
Merge pull request #9 from WebAssembly/setjmp-note
clarify setjmp/longjmp limitations when implemented using exceptions
-rw-r--r--EssentialPostV1Features.md9
1 files changed, 7 insertions, 2 deletions
diff --git a/EssentialPostV1Features.md b/EssentialPostV1Features.md
index 455cfa6..90e2885 100644
--- a/EssentialPostV1Features.md
+++ b/EssentialPostV1Features.md
@@ -23,8 +23,13 @@ in [future versions](FutureFeatures.md).
## Zero-cost Exception Handling
* Developer access to stack unwinding and inspection.
-* This will be used to implement `setjmp`/`longjmp` (instead of the usual
- opposite approach).
+* This may be used to implement `setjmp`/`longjmp` (instead of the usual
+ opposite approach). This can enable all of the defined behavior of
+ `setjmp`/`longjmp`, namely unwinding the stack, but does not allow
+ the undefined behavior case of jumping forward to a stack that
+ was already unwound (which is sometimes used to implement coroutines;
+ however, explicit coroutine support is being considered separately
+ anyhow).
## Signature-restricted Proper Tail Calls
* This can also be used to support `goto` and irreducible control flow.