|
@@ -3,14 +3,13 @@ const ch2: Record<string, string> = {};
|
|
let durl = (c: string) => URL.createObjectURL(new Blob([c], { type: 'text/javascript' }));
|
|
let durl = (c: string) => URL.createObjectURL(new Blob([c], { type: 'text/javascript' }));
|
|
|
|
|
|
try {
|
|
try {
|
|
- durl('')
|
|
|
|
|
|
+ URL.revokeObjectURL(durl(''));
|
|
} catch(e) {
|
|
} catch(e) {
|
|
durl = c => 'data:application/javascript;charset=UTF-8,' + encodeURI(c);
|
|
durl = c => 'data:application/javascript;charset=UTF-8,' + encodeURI(c);
|
|
}
|
|
}
|
|
|
|
|
|
export default <T>(c: string, id: number, msg: unknown, transfer: ArrayBuffer[], cb: (err: Error, msg: T) => void) => {
|
|
export default <T>(c: string, id: number, msg: unknown, transfer: ArrayBuffer[], cb: (err: Error, msg: T) => void) => {
|
|
- const u = ch2[id] ||= durl(c);
|
|
|
|
- const w = new Worker(u);
|
|
|
|
|
|
+ const w = new Worker(ch2[id] ||= durl(c));
|
|
w.onerror = e => cb(e.error, null);
|
|
w.onerror = e => cb(e.error, null);
|
|
w.onmessage = e => cb(null, e.data);
|
|
w.onmessage = e => cb(null, e.data);
|
|
w.postMessage(msg, transfer);
|
|
w.postMessage(msg, transfer);
|