Skip to content

Commit 04d3e07

Browse files
committed
Error on wasm worker creation when SAB is not available
This should have been part of emscripten-core#22710
1 parent af5c597 commit 04d3e07

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/library_wasm_worker.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ addToLibrary({
137137
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#unsafe_eval_expressions
138138
$_wasmWorkerBlobUrl: "URL.createObjectURL(new Blob(['onmessage=function(d){onmessage=null;d=d.data;{{{ captureModuleArg() }}}{{{ instantiateWasm() }}}importScripts(d.js);{{{ instantiateModule() }}}d.wasm=d.mem=d.js=0;}'],{type:'application/javascript'}))",
139139
#endif
140-
141140
_emscripten_create_wasm_worker__deps: [
142141
'$_wasmWorkers', '$_wasmWorkersID',
143142
'$_wasmWorkerAppendToQueue', '$_wasmWorkerRunPostMessage',
@@ -156,6 +155,12 @@ if (ENVIRONMENT_IS_WASM_WORKER
156155
addEventListener("message", _wasmWorkerAppendToQueue);
157156
}`,
158157
_emscripten_create_wasm_worker: (stackLowestAddress, stackSize) => {
158+
if (typeof SharedArrayBuffer == 'undefined') {
159+
#if ASSERTIONS
160+
dbg('create_wasm_worker: environment does not support SharedArrayBuffer, wasm workers are not available');
161+
#endif
162+
return 0;
163+
}
159164
let worker = _wasmWorkers[_wasmWorkersID] = new Worker(
160165
#if WASM_WORKERS == 2
161166
// WASM_WORKERS=2 mode embeds .ww.js file contents into the main .js file

test/code_size/hello_wasm_worker_wasm.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ c && (m[0] = this, addEventListener("message", l));
1515
WebAssembly.instantiate(b.wasm, {
1616
a: {
1717
b: (a, d) => {
18+
if ("undefined" == typeof SharedArrayBuffer) return 0;
1819
let r = m[n] = new Worker(b.$wb);
1920
r.postMessage({
2021
$ww: n,
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"a.html": 618,
33
"a.html.gz": 384,
4-
"a.js": 665,
5-
"a.js.gz": 455,
4+
"a.js": 715,
5+
"a.js.gz": 484,
66
"a.ww.js": 115,
77
"a.ww.js.gz": 127,
88
"a.wasm": 1850,
99
"a.wasm.gz": 1050,
10-
"total": 3248,
11-
"total_gz": 2016
10+
"total": 3298,
11+
"total_gz": 2045
1212
}

0 commit comments

Comments
 (0)