WebAssembly.Tag - JavaScript WebAssembly 对象
WebAssembly.Tag
WebAssembly.Tag
对象定义了一个WebAssembly异常的类型,该异常可以从 WebAssembly 代码中抛出。
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.
Constructor
WebAssembly.Tag()
Creates a new WebAssembly.Tag
object.
Instance methods
Tag.prototype.type()
Returns the object defining the data-types array for the tag(as set in its constructor).
Examples
This code snippet creates a new Tag
instance.
const tagToImport = new WebAssembly.Tag({ parameters: ["i32", "f32"] });
The snippet below shows how we might pass it to a module example.wasm during instantiation, using an "import object".
const importObject = { extmod: { exttag: tagToImport, }, }; WebAssembly.instantiateStreaming(fetch("example.wasm"), importObject).then( (obj) => { // … } );
The WebAssembly module might then import the tag as shown below:
(module (import "extmod" "exttag" (tag $tagname (param i32 f32)) )
If the tag was used to throw an exception that propagated to JavaScript, we could use the tag to inspect its values.
Note: There are many alternatives. We could also use the tag to create a WebAssembly.Exception
and throw that from a function called by WebAssembly.
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!