WebAssembly Instance导出函数调用时参数类型报错怎么办?
最近在用WebAssembly的Instance对象调用导出的add函数,传入两个数字直接报错,提示“Uncaught (in promise) CompileError: Expected f32, got number ‘5’”。代码明明写的是(i32, i32)返回i32,但实例化时模块明明导出的也是i32加法,这是哪里出问题了?
试过把参数转成Int32Array包装还是不行,是不是Instance的导入导出类型哪里配置错了?看浏览器开发者工具里模块导出列表显示确实有add函数,但就是参数类型检查不过…
Module.instance.exports.add(new Int32Array([5])[0], new Int32Array([10])[0])这种笨办法,麻烦死了。正确姿势是用TypedArray视图,比如:
懒人推荐直接用工具链,手写太累了。