Windows 10 will reach EOS (end of support) on October 14, 2025. For more information, see this article.

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 èsì
  • 0 ní àwọn ìṣòro yìí
  • 29 views
  • Èsì tí ó kẹ́hìn lọ́wọ́ TyDraniu

more options

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)

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

Helpful?

Béèrè ìbéèrè

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