Skip to content

Commit d64c37e

Browse files
authored
Optimize ENVIRONMENT_IS_AUDIO_WORKLET checks (#25351)
Optimize ENVIRONMENT_IS_AUDIO_WORKLET checks and use it in more places to optimize code size.
1 parent fb3659f commit d64c37e

File tree

6 files changed

+23
-24
lines changed

6 files changed

+23
-24
lines changed

src/lib/libwasm_worker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#endif
2727

2828
{{{
29-
const workerSupportsFutexWait = () => AUDIO_WORKLET ? "typeof AudioWorkletGlobalScope === 'undefined'" : '1';
29+
const workerSupportsFutexWait = () => AUDIO_WORKLET ? "!ENVIRONMENT_IS_AUDIO_WORKLET" : '1';
3030
const wasmWorkerJs = `
3131
#if MINIMAL_RUNTIME
3232
#if ENVIRONMENT_MAY_BE_NODE
@@ -146,7 +146,7 @@ addToLibrary({
146146

147147
#if AUDIO_WORKLET
148148
// Audio Worklets do not have postMessage()ing capabilities.
149-
if (typeof AudioWorkletGlobalScope === 'undefined') {
149+
if (!ENVIRONMENT_IS_AUDIO_WORKLET) {
150150
#endif
151151
// The Wasm Worker runtime is now up, so we can start processing
152152
// any postMessage function calls that have been received. Drop the temp

src/lib/libwebaudio.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ var LibraryWebAudio = {
316316
srcNode.connect(dstNode.destination || dstNode, outputIndex, inputIndex);
317317
},
318318

319-
emscripten_current_thread_is_audio_worklet: () => typeof AudioWorkletGlobalScope !== 'undefined',
319+
emscripten_current_thread_is_audio_worklet: () => ENVIRONMENT_IS_AUDIO_WORKLET,
320320

321321
emscripten_audio_worklet_post_function_v: (audioContext, funcPtr) => {
322322
(audioContext ? EmAudio[audioContext].audioWorklet.bootstrapMessage.port : messagePort).postMessage({'_wsc': funcPtr, args: [] }); // "WaSm Call"

src/shell.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ var ENVIRONMENT_IS_WASM_WORKER = globalThis.name == 'em-ww';
5151
#endif
5252

5353
#if AUDIO_WORKLET
54-
var ENVIRONMENT_IS_AUDIO_WORKLET = typeof AudioWorkletGlobalScope !== 'undefined';
54+
var ENVIRONMENT_IS_AUDIO_WORKLET = !!globalThis.AudioWorkletGlobalScope;
5555
// Audio worklets behave as wasm workers.
5656
if (ENVIRONMENT_IS_AUDIO_WORKLET) ENVIRONMENT_IS_WASM_WORKER = true;
5757
#endif

src/shell_minimal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ if (ENVIRONMENT_IS_NODE) {
7171
#endif
7272

7373
#if AUDIO_WORKLET
74-
var ENVIRONMENT_IS_AUDIO_WORKLET = typeof AudioWorkletGlobalScope !== 'undefined';
74+
var ENVIRONMENT_IS_AUDIO_WORKLET = !!globalThis.AudioWorkletGlobalScope;
7575
if (ENVIRONMENT_IS_AUDIO_WORKLET) ENVIRONMENT_IS_WASM_WORKER = true;
7676
#endif
7777

test/codesize/audio_worklet_wasm.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var m = globalThis.Module || "undefined" != typeof Module ? Module : {}, n = "em-ww" == globalThis.name, q = "undefined" !== typeof AudioWorkletGlobalScope, t, z, J, K, H, E, v, X, F, C, B, Y, A, Z;
1+
var m = globalThis.Module || "undefined" != typeof Module ? Module : {}, n = "em-ww" == globalThis.name, q = !!globalThis.AudioWorkletGlobalScope, t, z, J, K, H, D, v, X, F, C, B, Y, A, Z;
22

33
q && (n = !0);
44

@@ -31,7 +31,7 @@ if (q) {
3131
this.K();
3232
}
3333
K() {
34-
for (var d = B(), f = C(this.B.length * this.s) >> 2, g = this.B.length - 1; 0 <= g; g--) this.B[g] = E.subarray(f, f += this.u);
34+
for (var d = B(), f = C(this.B.length * this.s) >> 2, g = this.B.length - 1; 0 <= g; g--) this.B[g] = D.subarray(f, f += this.u);
3535
F(d);
3636
}
3737
static get parameterDescriptors() {
@@ -46,24 +46,24 @@ if (q) {
4646
l += G * this.s;
4747
var O = 0;
4848
for (k in g) ++O, h += 8, l += g[k].byteLength;
49-
var V = B(), D = h + l + 15 & -16;
50-
h = C(D);
51-
l = h + (D - l);
52-
D = h;
49+
var V = B(), E = h + l + 15 & -16;
50+
h = C(E);
51+
l = h + (E - l);
52+
E = h;
5353
for (k of d) {
5454
H[h >> 2] = k.length;
5555
H[h + 4 >> 2] = this.u;
5656
H[h + 8 >> 2] = l;
5757
h += 12;
58-
for (r of k) E.set(r, l >> 2), l += this.s;
58+
for (r of k) D.set(r, l >> 2), l += this.s;
5959
}
6060
d = h;
61-
for (k = 0; r = g[k++]; ) H[h >> 2] = r.length, H[h + 4 >> 2] = l, h += 8, E.set(r, l >> 2),
61+
for (k = 0; r = g[k++]; ) H[h >> 2] = r.length, H[h + 4 >> 2] = l, h += 8, D.set(r, l >> 2),
6262
l += 4 * r.length;
6363
g = h;
6464
for (k of f) H[h >> 2] = k.length, H[h + 4 >> 2] = this.u, H[h + 8 >> 2] = l, h += 12,
6565
l += this.s * k.length;
66-
if (p = this.v(p, D, x, g, O, d, this.A)) for (k of f) for (r of k) r.set(this.B[--G]);
66+
if (p = this.v(p, E, x, g, O, d, this.A)) for (k of f) for (r of k) r.set(this.B[--G]);
6767
F(V);
6868
return !!p;
6969
}
@@ -95,7 +95,7 @@ function w() {
9595
J = new Uint8Array(a);
9696
K = new Int32Array(a);
9797
H = new Uint32Array(a);
98-
E = new Float32Array(a);
98+
D = new Float32Array(a);
9999
}
100100

101101
n || (v = m.mem || new WebAssembly.Memory({
@@ -169,9 +169,9 @@ var L = [], M = a => {
169169
b = H[b + 8 >> 2];
170170
for (var p = 0; g--; ) d.push({
171171
name: p++,
172-
defaultValue: E[b >> 2],
173-
minValue: E[b + 4 >> 2],
174-
maxValue: E[b + 8 >> 2],
172+
defaultValue: D[b >> 2],
173+
minValue: D[b + 4 >> 2],
174+
maxValue: D[b + 8 >> 2],
175175
automationRate: (K[b + 12 >> 2] ? "k" : "a") + "-rate"
176176
}), b += 16;
177177
R[a].audioWorklet.D.port.postMessage({
@@ -240,8 +240,7 @@ function y() {
240240
m.stackAlloc = ha;
241241
m.stackRestore = P;
242242
m.wasmTable = A;
243-
n ? (Y(t.J, t.F), "undefined" === typeof AudioWorkletGlobalScope && (removeEventListener("message", N),
244-
L = L.forEach(M), addEventListener("message", M))) : a.i();
243+
n ? (Y(t.J, t.F), q || (removeEventListener("message", N), L = L.forEach(M), addEventListener("message", M))) : a.i();
245244
n || X();
246245
}));
247246
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"a.html": 519,
33
"a.html.gz": 357,
4-
"a.js": 4075,
5-
"a.js.gz": 2135,
4+
"a.js": 4024,
5+
"a.js.gz": 2127,
66
"a.wasm": 1308,
77
"a.wasm.gz": 876,
8-
"total": 5902,
9-
"total_gz": 3368
8+
"total": 5851,
9+
"total_gz": 3360
1010
}

0 commit comments

Comments
 (0)