WebAssembly.Exception.prototype.is()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2022.

Exception 对象的 is() 原型方法可以用于测试 Exception 是否匹配一个指定的标签。

在将标签传递给 Exception.prototype.getArg() 获取传递值之前,可以用该方法测试标签的正确性。可以用在 JavaScript 中创建的标签或者在 WebAssembly 中创建并导出到 JavaScript 中的标签。

备注: 数据类型顺序相同的标签是不够的——必须和异常创建时用的标签具有相同的身份(同一个标签)。

语法

js
is(tag)

参数

tag

用来验证异常的类型的 WebAssembly.Tag

返回值

如果指定的标签匹配异常,则返回布尔值 true,否则返回 false

示例

下面的代码展示如何使用 is() 验证一个标签匹配一个 Exception

js
// 创建标签,并用它创建异常
const tag1 = new WebAssembly.Tag({ parameters: ["i32", "f64"] });
const exception1 = new WebAssembly.Exception(tag1, [42, 42.3]);

// 验证“tag1”匹配这个异常
console.log(`Tag1: ${exception1.is(tag1)}`);

// 日志输出:
// Tag1: true

我们也可以展示这个异常不匹配另一个标签,即使该标签是用相同的参数创建的。

js
// 创建一个新的标签(用一样的参数)并验证它不匹配该异常
const tag2 = new WebAssembly.Tag({ parameters: ["i32", "f64"] });
console.log(`Tag2: ${exception1.is(tag2)}`);

// 日志输出:
// Tag2: false

规范

Specification
WebAssembly JavaScript Interface: Exception Handling
# dom-exception-is

浏览器兼容性

参见