Add source location to top-level unhandled error if available
This commit is contained in:
parent
e0bac61346
commit
cdc743d834
1 changed files with 33 additions and 2 deletions
|
@ -114,9 +114,40 @@ window.SignalContext.log = {
|
||||||
trace: log.trace,
|
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);
|
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 => {
|
window.addEventListener('unhandledrejection', rejectionEvent => {
|
||||||
|
|
Loading…
Reference in a new issue