WebAssembly.module.exports

WebAssembly.module.exports

这是一项 实验技术

在使用此产品之前,请仔细检查浏览器兼容性表。

WebAssembly.exports()函数返回一个包含给定的所有声明导出的描述的数组Module

语法

var exports = WebAssembly.Module.exports(module

参数

_module_A WebAssembly.Module object.

返回值

包含表示给定模块的导出函数的对象的数组。

异常

如果模块不是WebAssembly.Module对象实例,则抛出TypeError

示例

以下示例(请参阅我们在GitHub上的index-compile.html演示,也可以现场查看)使用该WebAssembly.compile()函数编译加载的simple.wasm字节代码,然后使用postMessage()将其发送给工作人员。

var worker = new Worker("wasm_worker.js" fetch('simple.wasm').then(response =>   response.arrayBuffer() ).then(bytes =>   WebAssembly.compile(bytes) ).then(mod =>   worker.postMessage(mod)

在worker中(见wasm_worker.js),我们定义一个要使用的模块的导入对象,然后设置一个事件处理程序来接收来自主线程的模块。当模块被接收到时,我们使用WebAssembly.Instantiate()方法从它创建一个实例,从里面调用一个导出的函数,然后显示我们如何用WebAssembly.Module.exports返回一个模块上可用的导出信息。

var importObject = { imports: { imported_func: function(arg) { console.log(arg } } }; onmessage = function(e) { console.log('module received from main thread' var mod = e.data; WebAssembly.instantiate(mod, importObject).then(function(instance) { instance.exports.exported_func( } var exports = WebAssembly.Module.exports(mod console.log(exports[0] };

exports[0]输出如下所示:

{ name: "exported_func", kind: "function" }

规范

SpecificationStatusComment
Web Assembly JavaScript APIThe definition of 'exports()' in that specification.DraftInitial draft definition.

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support5716522No4411

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support5757(Yes)1522No?11