The WebAssembly.Tag
object defines a type of a WebAssembly exception that can be thrown to/from WebAssembly code.
When creating a WebAssembly.Exception
, the tag defines the data types and order of the values carried by the exception. The same unique tag instance must be used to access the values of the exception (for example, when using Exception.prototype.getArg()
).
Constructing an instance of Tag
creates a new unique tag. This tag can be passed to a WebAssembly module as a tag import, where it will become a typed tag defined in the tag section of the WebAssembly module. You can also export a tag defined in a module and use it to inspect exceptions thrown from the module.
Note: You can't access the values of an exception with a new tag that just happens to have the same parameters; it's a different tag! This ensures that WebAssembly modules can keep exception information internal if required. Code can still catch and rethrow exceptions that it does not understand.