Skip to content

Commit 99f4c12

Browse files
committed
Code size updates
1 parent 5be2035 commit 99f4c12

File tree

2 files changed

+130
-125
lines changed

2 files changed

+130
-125
lines changed

test/code_size/audio_worklet_wasm.js

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

3-
q && (n = !0);
3+
q && (p = !0);
44

55
function u(a) {
66
t = a;
7-
v = a.I;
8-
y();
9-
l ||= {};
10-
l.wasm = a.C;
7+
v = a.L;
8+
x();
9+
k ||= {};
10+
k.wasm = a.H;
1111
z();
12-
a.C = a.J = 0;
12+
a.H = a.M = 0;
1313
}
1414

15-
n && !q && (onmessage = a => {
15+
p && !q && (onmessage = a => {
1616
onmessage = null;
1717
u(a.data);
1818
});
@@ -23,43 +23,48 @@ if (q) {
2323
constructor(d) {
2424
super();
2525
d = d.processorOptions;
26-
this.u = A.get(d.u);
27-
this.v = d.v;
28-
this.s = d.s;
26+
this.v = A.get(d.v);
27+
this.A = d.A;
28+
this.u = d.u;
29+
this.s = 4 * this.u;
30+
this.F = Math.min((t.D - 16) / this.s | 0, 16);
31+
d = B();
32+
var f = C(this.F * this.s) >> 2;
33+
this.G = [];
34+
for (var g = this.F; 0 < g; g--) this.G.unshift(D.subarray(f, f += this.u));
35+
E(d);
2936
}
3037
static get parameterDescriptors() {
3138
return c;
3239
}
33-
process(d, g, h) {
34-
var p = d.length, w = g.length, k, r, x = 4 * this.s, f = 12 * (p + w), D = 0;
35-
for (k of d) f += k.length * x;
36-
for (k of g) f += k.length * x;
37-
for (k in h) f += h[k].byteLength + 8, ++D;
38-
var V = B(), G = C(f);
39-
f = G;
40-
var m = G + 12 * p;
41-
for (k of d) {
42-
E[f >> 2] = k.length;
43-
E[f + 4 >> 2] = this.s;
44-
E[f + 8 >> 2] = m;
45-
f += 12;
46-
for (r of k) F.set(r, m >> 2), m += x;
40+
process(d, f, g) {
41+
var n = d.length, w = f.length, h, r, y = 12 * (n + w);
42+
for (h of d) y += h.length * this.s;
43+
var G = 0;
44+
for (h of f) G += h.length;
45+
y += G * this.s;
46+
var H = 0;
47+
for (h in g) y += g[h].byteLength + 8, ++H;
48+
var W = B(), O = y + 15 & -16, l = C(O), P = l, m = P;
49+
l += 12 * n;
50+
for (h of d) {
51+
F[m >> 2] = h.length;
52+
F[m + 4 >> 2] = this.u;
53+
F[m + 8 >> 2] = l;
54+
m += 12;
55+
for (r of h) D.set(r, l >> 2), l += this.s;
4756
}
48-
var O = m;
49-
f = O;
50-
d = m += 12 * w;
51-
for (k of g) E[f >> 2] = k.length, E[f + 4 >> 2] = this.s, E[f + 8 >> 2] = m, f += 12,
52-
m += x * k.length;
53-
f = x = m;
54-
m += 8 * D;
55-
for (k = 0; r = h[k++]; ) E[f >> 2] = r.length, E[f + 4 >> 2] = m, f += 8, F.set(r, m >> 2),
56-
m += 4 * r.length;
57-
if (h = this.u(p, G, w, O, D, x, this.v)) {
58-
d >>= 2;
59-
for (k of g) for (r of k) for (f = 0; f < this.s; ++f) r[f] = F[d++];
60-
}
61-
H(V);
62-
return !!h;
57+
m = d = l;
58+
l += 8 * H;
59+
for (h = 0; r = g[h++]; ) F[m >> 2] = r.length, F[m + 4 >> 2] = l, m += 8, D.set(r, l >> 2),
60+
l += 4 * r.length;
61+
m = g = l += O - y;
62+
l += 12 * w;
63+
for (h of f) F[m >> 2] = h.length, F[m + 4 >> 2] = this.u, F[m + 8 >> 2] = l, m += 12,
64+
l += this.s * h.length;
65+
if (n = this.v(n, P, w, g, H, d, this.A)) for (h of f) for (r of h) r.set(this.G[--G]);
66+
E(W);
67+
return !!n;
6368
}
6469
}
6570
return e;
@@ -72,171 +77,171 @@ if (q) {
7277
I = this.port;
7378
I.onmessage = async e => {
7479
e = e.data;
75-
e._wpn ? (registerProcessor(e._wpn, a(e.D)), I.postMessage({
76-
_wsc: e.u,
77-
A: [ e.F, 1, e.v ]
78-
})) : e._wsc && A.get(e._wsc)(...e.A);
80+
e._wpn ? (registerProcessor(e._wpn, a(e.I)), I.postMessage({
81+
_wsc: e.v,
82+
B: [ e.J, 1, e.A ]
83+
})) : e._wsc && A.get(e._wsc)(...e.B);
7984
};
8085
}
8186
process() {}
8287
}
8388
registerProcessor("em-bootstrap", b);
8489
}
8590

86-
function y() {
91+
function x() {
8792
var a = v.buffer;
8893
J = new Uint8Array(a);
8994
K = new Int32Array(a);
90-
E = new Uint32Array(a);
91-
F = new Float32Array(a);
95+
F = new Uint32Array(a);
96+
D = new Float32Array(a);
9297
}
9398

94-
n || (v = l.mem || new WebAssembly.Memory({
99+
p || (v = k.mem || new WebAssembly.Memory({
95100
initial: 256,
96101
maximum: 256,
97102
shared: !0
98-
}), y());
103+
}), x());
99104

100105
var L = [], M = a => {
101106
a = a.data;
102107
let b = a._wsc;
103108
b && A.get(b)(...a.x);
104109
}, N = a => {
105110
L.push(a);
106-
}, P = a => H(a), Q = () => B(), S = (a, b, c, e) => {
107-
b = R[b];
108-
R[a].connect(b.destination || b, c, e);
109-
}, R = {}, T = 0, U = "undefined" != typeof TextDecoder ? new TextDecoder : void 0, W = (a = 0) => {
111+
}, Q = a => E(a), R = () => B(), aa = (a, b, c, e) => {
112+
b = S[b];
113+
S[a].connect(b.destination || b, c, e);
114+
}, S = {}, T = 0, U = "undefined" != typeof TextDecoder ? new TextDecoder : void 0, V = (a = 0) => {
110115
for (var b = J, c = a, e = c + void 0; b[c] && !(c >= e); ) ++c;
111116
if (16 < c - a && b.buffer && U) return U.decode(b.slice(a, c));
112117
for (e = ""; a < c; ) {
113118
var d = b[a++];
114119
if (d & 128) {
115-
var g = b[a++] & 63;
116-
if (192 == (d & 224)) e += String.fromCharCode((d & 31) << 6 | g); else {
117-
var h = b[a++] & 63;
118-
d = 224 == (d & 240) ? (d & 15) << 12 | g << 6 | h : (d & 7) << 18 | g << 12 | h << 6 | b[a++] & 63;
120+
var f = b[a++] & 63;
121+
if (192 == (d & 224)) e += String.fromCharCode((d & 31) << 6 | f); else {
122+
var g = b[a++] & 63;
123+
d = 224 == (d & 240) ? (d & 15) << 12 | f << 6 | g : (d & 7) << 18 | f << 12 | g << 6 | b[a++] & 63;
119124
65536 > d ? e += String.fromCharCode(d) : (d -= 65536, e += String.fromCharCode(55296 | d >> 10, 56320 | d & 1023));
120125
}
121126
} else e += String.fromCharCode(d);
122127
}
123128
return e;
124-
}, aa = a => {
129+
}, ba = a => {
125130
var b = window.AudioContext || window.webkitAudioContext;
126131
if (a) {
127-
var c = E[a >> 2];
132+
var c = F[a >> 2];
128133
a = {
129-
latencyHint: (c ? W(c) : "") || void 0,
130-
sampleRate: E[a + 4 >> 2] || void 0
134+
latencyHint: (c ? V(c) : "") || void 0,
135+
sampleRate: F[a + 4 >> 2] || void 0
131136
};
132137
} else a = void 0;
133-
if (c = b) b = new b(a), R[++T] = b, c = T;
138+
if (c = b) b = new b(a), S[++T] = b, c = T;
134139
return c;
135-
}, ba = (a, b, c, e, d) => {
136-
var g = c ? K[c + 4 >> 2] : 0;
140+
}, ca = (a, b, c, e, d) => {
141+
var f = c ? K[c + 4 >> 2] : 0;
137142
if (c) {
138-
var h = K[c >> 2];
139-
c = E[c + 8 >> 2];
140-
var p = g;
143+
var g = K[c >> 2];
144+
c = F[c + 8 >> 2];
145+
var n = f;
141146
if (c) {
142147
c >>= 2;
143-
for (var w = []; p--; ) w.push(E[c++]);
148+
for (var w = []; n--; ) w.push(F[c++]);
144149
c = w;
145150
} else c = void 0;
146151
e = {
147-
numberOfInputs: h,
148-
numberOfOutputs: g,
152+
numberOfInputs: g,
153+
numberOfOutputs: f,
149154
outputChannelCount: c,
150155
processorOptions: {
151-
u: e,
152-
v: d,
153-
s: 128
156+
v: e,
157+
A: d,
158+
u: 128
154159
}
155160
};
156161
} else e = void 0;
157-
a = new AudioWorkletNode(R[a], b ? W(b) : "", e);
158-
R[++T] = a;
162+
a = new AudioWorkletNode(S[a], b ? V(b) : "", e);
163+
S[++T] = a;
159164
return T;
160-
}, ca = (a, b, c, e) => {
161-
var d = [], g = (g = E[b >> 2]) ? W(g) : "", h = K[b + 4 >> 2];
162-
b = E[b + 8 >> 2];
163-
for (var p = 0; h--; ) d.push({
164-
name: p++,
165-
defaultValue: F[b >> 2],
166-
minValue: F[b + 4 >> 2],
167-
maxValue: F[b + 8 >> 2],
165+
}, da = (a, b, c, e) => {
166+
var d = [], f = (f = F[b >> 2]) ? V(f) : "", g = K[b + 4 >> 2];
167+
b = F[b + 8 >> 2];
168+
for (var n = 0; g--; ) d.push({
169+
name: n++,
170+
defaultValue: D[b >> 2],
171+
minValue: D[b + 4 >> 2],
172+
maxValue: D[b + 8 >> 2],
168173
automationRate: (K[b + 12 >> 2] ? "k" : "a") + "-rate"
169174
}), b += 16;
170-
R[a].audioWorklet.B.port.postMessage({
171-
_wpn: g,
172-
D: d,
173-
F: a,
174-
u: c,
175-
v: e
175+
S[a].audioWorklet.C.port.postMessage({
176+
_wpn: f,
177+
I: d,
178+
J: a,
179+
v: c,
180+
A: e
176181
});
177-
}, da = () => !1, ea = 1, fa = a => {
182+
}, ea = () => !1, fa = 1, ha = a => {
178183
a = a.data;
179184
var b = a._wsc;
180-
b && A.get(b)(...a.A);
181-
}, ha = a => C(a), ia = (a, b, c, e, d) => {
182-
var g = R[a], h = g.audioWorklet, p = () => {
185+
b && A.get(b)(...a.B);
186+
}, ia = a => C(a), ja = (a, b, c, e, d) => {
187+
var f = S[a], g = f.audioWorklet, n = () => {
183188
A.get(e)(a, 0, d);
184189
};
185-
if (!h) return p();
186-
h.addModule(l.js).then((() => {
187-
h.B = new AudioWorkletNode(g, "em-bootstrap", {
190+
if (!g) return n();
191+
g.addModule(k.js).then((() => {
192+
g.C = new AudioWorkletNode(f, "em-bootstrap", {
188193
processorOptions: {
189-
K: ea++,
190-
C: l.wasm,
191-
I: v,
192-
G: b,
193-
H: c
194+
N: fa++,
195+
H: k.wasm,
196+
L: v,
197+
K: b,
198+
D: c
194199
}
195200
});
196-
h.B.port.onmessage = fa;
201+
g.C.port.onmessage = ha;
197202
A.get(e)(a, 1, d);
198-
})).catch(p);
203+
})).catch(n);
199204
};
200205

201-
function ja(a) {
206+
function ka(a) {
202207
let b = document.createElement("button");
203208
b.innerHTML = "Toggle playback";
204209
document.body.appendChild(b);
205-
a = R[a];
210+
a = S[a];
206211
b.onclick = () => {
207212
"running" != a.state ? a.resume() : a.suspend();
208213
};
209214
}
210215

211216
function z() {
212217
Z = {
213-
f: ja,
214-
g: S,
215-
d: aa,
216-
h: ba,
217-
e: ca,
218-
b: da,
219-
c: ia,
218+
f: ka,
219+
g: aa,
220+
d: ba,
221+
h: ca,
222+
e: da,
223+
b: ea,
224+
c: ja,
220225
a: v
221226
};
222-
WebAssembly.instantiate(l.wasm, {
227+
WebAssembly.instantiate(k.wasm, {
223228
a: Z
224229
}).then((a => {
225230
a = (a.instance || a).exports;
226231
X = a.j;
227-
H = a.l;
232+
E = a.l;
228233
C = a.m;
229234
B = a.n;
230235
Y = a.o;
231236
A = a.k;
232-
l.stackSave = Q;
233-
l.stackAlloc = ha;
234-
l.stackRestore = P;
235-
l.wasmTable = A;
236-
n ? (Y(t.G, t.H), "undefined" === typeof AudioWorkletGlobalScope && (removeEventListener("message", N),
237+
k.stackSave = R;
238+
k.stackAlloc = ia;
239+
k.stackRestore = Q;
240+
k.wasmTable = A;
241+
p ? (Y(t.K, t.D), "undefined" === typeof AudioWorkletGlobalScope && (removeEventListener("message", N),
237242
L = L.forEach(M), addEventListener("message", M))) : a.i();
238-
n || X();
243+
p || X();
239244
}));
240245
}
241246

242-
n || z();
247+
p || z();
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": 3882,
5-
"a.js.gz": 2038,
4+
"a.js": 4062,
5+
"a.js.gz": 2128,
66
"a.wasm": 1288,
77
"a.wasm.gz": 860,
8-
"total": 5689,
9-
"total_gz": 3255
8+
"total": 5869,
9+
"total_gz": 3345
1010
}

0 commit comments

Comments
 (0)