Source code
Revision control
Copy as Markdown
Other Tools
class DOMExceptionProcessor extends AudioWorkletProcessor {
constructor() {
super();
this.port.onmessage = e => this.port.postMessage({
type: 'message',
isDOMException: e.data instanceof DOMException,
isQuotaExceededError: typeof QuotaExceededError === 'function' && e.data instanceof QuotaExceededError,
name: e.data?.name,
message: e.data?.message,
});
this.port.onmessageerror = () => this.port.postMessage({ type: 'messageerror' });
let created;
try {
created = {
domException: new DOMException('created in a worklet', 'SyntaxError'),
quotaExceededError: new QuotaExceededError('also created in a worklet', { quota: 1, requested: 2 }),
};
} catch (e) {
created = { error: String(e) };
}
this.port.postMessage({
type: 'ready',
typeofDOMException: typeof DOMException,
typeofQuotaExceededError: typeof QuotaExceededError,
created,
});
}
process() {
return false;
}
}
registerProcessor('domexception-processor', DOMExceptionProcessor);