This repository is a clone of github.com/WebAssembly/spec/. It is meant for discussion, prototype specification and implementation of a proposal to add support for different patterns of non-local control flow to WebAssembly.
-
See the overview for a summary of the proposal.
-
See the modified spec for details.
This is a proposed solution addressing the aims of the stack-switching proposal.
It depends on the function references and the exception handling proposals.
A complete implementation is available as an extension to the reference interpreter.
-
See the explainer for a high-level summary of the proposal.
-
See the overview for a more formal description of the proposal.
-
See the examples for Wasm code for implementing various different features including lightweight threads, actors, and async/await.
An alternate approach to stack switching revolves around the concept of fibers rather than continuation functions. An explainer for this proposal can be seen here.
Original README
from upstream repository follows.
This repository holds a prototypical reference implementation for WebAssembly, which is currently serving as the official specification. Eventually, we expect to produce a specification either written in human-readable prose or in a formal specification language.
It also holds the WebAssembly testsuite, which tests numerous aspects of conformance to the spec.
View the work-in-progress spec at webassembly.github.io/spec.
At this time, the contents of this repository are under development and known to be "incomplet and inkorrect".
Participation is welcome. Discussions about new features, significant semantic changes, or any specification change likely to generate substantial discussion should take place in the WebAssembly design repository first, so that this spec repository can remain focused. And please follow the guidelines for contributing.
For citing WebAssembly in LaTeX, use this bibtex file.