Add source location to top-level unhandled error if available

This commit is contained in:
Jamie Kyle 2023-03-16 17:03:38 -07:00 committed by GitHub
parent e0bac61346
commit cdc743d834
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -114,9 +114,40 @@ window.SignalContext.log = {
trace: log.trace,
};
window.onerror = (_message, _script, _line, _col, error) => {
function toLocation(
event: string | Event,
sourceArg?: string,
lineArg?: number,
columnArg?: number
) {
let source = sourceArg;
let line = lineArg;
let column = columnArg;
if (event instanceof ErrorEvent) {
source ??= event.filename;
line ??= event.lineno;
column ??= event.colno;
}
if (source == null) {
return '(@ unknown)';
}
if (line != null && column != null) {
return `(@ ${source}:${line}:${column})`;
}
if (line != null) {
return `(@ ${source}:${line})`;
}
return `(@ ${source})`;
}
window.onerror = (event, source, line, column, error) => {
const errorInfo = Errors.toLogFormat(error);
log.error(`Top-level unhandled error: ${errorInfo}`);
log.error(
`Top-level unhandled error: ${errorInfo}`,
toLocation(event, source, line, column)
);
};
window.addEventListener('unhandledrejection', rejectionEvent => {