Skip to content

Commit c6dc647

Browse files
authored
Error on wasm worker creation when SAB is not available (#22720)
This should have been part of #22710
1 parent 9c9b764 commit c6dc647

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/library_wasm_worker.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,14 @@ 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',
144143
#if WASM_WORKERS == 2
145144
'$_wasmWorkerBlobUrl',
145+
#endif
146+
#if ASSERTIONS
147+
'emscripten_has_threading_support',
146148
#endif
147149
],
148150
_emscripten_create_wasm_worker__postset: `
@@ -156,6 +158,12 @@ if (ENVIRONMENT_IS_WASM_WORKER
156158
addEventListener("message", _wasmWorkerAppendToQueue);
157159
}`,
158160
_emscripten_create_wasm_worker: (stackLowestAddress, stackSize) => {
161+
#if ASSERTIONS
162+
if (!_emscripten_has_threading_support()) {
163+
err('create_wasm_worker: environment does not support SharedArrayBuffer, wasm workers are not available');
164+
return 0;
165+
}
166+
#endif
159167
let worker = _wasmWorkers[_wasmWorkersID] = new Worker(
160168
#if WASM_WORKERS == 2
161169
// WASM_WORKERS=2 mode embeds .ww.js file contents into the main .js file

0 commit comments

Comments
 (0)