我正在尝试一个简单的 hello world WebAssembly 示例,但无法理解我在 Chrome 59 中看到的错误:
RangeError:如果缓冲区大小大于 4KB,则主线程上不允许 WebAssembly.Compile。使用 WebAssembly.compile,或在工作线程上编译。
src/wasm/counter.wasm:13
10 | let wa;
11 | const make = source => {
12 | // buffer should already be set
> 13 | return wa = new Module(buffer);
14 | };
15 |
16 | const WebAssemblyModule = function(deps = {
我已按照本教程中的步骤进行操作,并且可以毫无错误地构建所有内容。我正在使用create-react-app
重新接线wasm-loader
。
如果我使用的是计数器模块的本地版本,则会收到我在开头提到的错误。如果我尝试使用预构建的版本(例如这个项目中的那个),它可以正常工作。
当我构建我的模块时,我使用的命令与教程中指定的相同。具有工作模块的项目在其 README 中列出了相同的命令:
emcc counter.c -O1 -o counter.wasm -s WASM=1 -s SIDE_MODULE=1
知道可能导致错误的原因吗?