Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Webassembly.compile() doesn't support SharedArrayBuffer in 138

  • 1 பதிலளி
  • 0 இந்த பிரச்னைகள் உள்ளது
  • 11 views
  • Last reply by TyDraniu

Hello,

as per description I noticed that firefox version 138 requires an ArrayBuffer as the argument of WebAssembly.compile() and doesn't allow anymore (like in 137) a SharedArrayBuffer, is this intended or it will be fixed in the future? Follows a simple test case. Kind reagards.


--- index.html --- <title>Example</title> <script> let instance = undefined; async function loadWasm() { try { const response = await fetch('./sum.wasm'); const buffer = await response.arrayBuffer(); const sharedBuffer = new SharedArrayBuffer(buffer.byteLength); const tmpView = new Uint8Array(sharedBuffer); tmpView.set(new Uint8Array(buffer)); const module = await WebAssembly.compile(sharedBuffer); instance = await WebAssembly.instantiate(module); } catch (error) { alert(`failed to compile in wasm: ${error.message}`); } } loadWasm(); function testWasm() { if (instance) alert(`sum 1 + 2 = ${instance.exports.add(1, 2)}`); else alert('invalid instance, failed to compile'); } </script> <button onclick="testWasm()">Press to run wasm function (sum)</button> --- ---

--- sum.wat --- (to convert into .wasm using: wat2wasm sum.wat -o sum.wasm) (module (func $add (param $lhs i32) (param $rhs i32) (result i32) local.get $lhs local.get $rhs i32.add) (export "add" (func $add)) ) --- ---

Hello, as per description I noticed that firefox version 138 requires an ArrayBuffer as the argument of WebAssembly.compile() and doesn't allow anymore (like in 137) a SharedArrayBuffer, is this intended or it will be fixed in the future? Follows a simple test case. Kind reagards. --- index.html --- <!DOCTYPE html> <html> <head> <title>Example</title> </head> <body> <script> let instance = undefined; async function loadWasm() { try { const response = await fetch('./sum.wasm'); const buffer = await response.arrayBuffer(); const sharedBuffer = new SharedArrayBuffer(buffer.byteLength); const tmpView = new Uint8Array(sharedBuffer); tmpView.set(new Uint8Array(buffer)); const module = await WebAssembly.compile(sharedBuffer); instance = await WebAssembly.instantiate(module); } catch (error) { alert(`failed to compile in wasm: ${error.message}`); } } loadWasm(); function testWasm() { if (instance) alert(`sum 1 + 2 = ${instance.exports.add(1, 2)}`); else alert('invalid instance, failed to compile'); } </script> <button onclick="testWasm()">Press to run wasm function (sum)</button> </body> </html> --- --- --- sum.wat --- (to convert into .wasm using: ''wat2wasm sum.wat -o sum.wasm'') (module (func $add (param $lhs i32) (param $rhs i32) (result i32) local.get $lhs local.get $rhs i32.add) (export "add" (func $add)) ) --- ---

All Replies (1)

  1. Please report this bug on https://bugzilla.mozilla.org .
  2. You can use mozregression to find a commit that broke it.

Helpful?

கேள்வி எழுப்பு

You must log in to your account to reply to posts. Please start a new question, if you do not have an account yet.