Fix capture and display rejected promises in web editor console
This commit is contained in:
parent
f918669116
commit
111abb2b93
1 changed files with 17 additions and 1 deletions
|
@ -38,6 +38,22 @@ export const hijackConsoleErrorsScript = (offs) => {
|
||||||
}], '*');
|
}], '*');
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
// catch rejected promises
|
||||||
|
window.onunhandledrejection = function (event) {
|
||||||
|
if (event.reason && event.reason.message && event.reason.stack){
|
||||||
|
var errorNum = event.reason.stack.split('about:srcdoc:')[1].split(':')[0];
|
||||||
|
var fileInfo = getScriptOff(errorNum);
|
||||||
|
var data = event.reason.message + ' (' + fileInfo[1] + ': line ' + fileInfo[0] + ')';
|
||||||
|
window.parent.postMessage([{
|
||||||
|
log: [{
|
||||||
|
method: 'error',
|
||||||
|
data: [data],
|
||||||
|
id: Date.now().toString()
|
||||||
|
}],
|
||||||
|
source: fileInfo[1]
|
||||||
|
}], '*');
|
||||||
|
}
|
||||||
|
};
|
||||||
`;
|
`;
|
||||||
return s;
|
return s;
|
||||||
};
|
};
|
||||||
|
@ -46,7 +62,7 @@ export const startTag = '@fs-';
|
||||||
|
|
||||||
export const getAllScriptOffsets = (htmlFile) => {
|
export const getAllScriptOffsets = (htmlFile) => {
|
||||||
const offs = [];
|
const offs = [];
|
||||||
const hijackConsoleErrorsScriptLength = 36;
|
const hijackConsoleErrorsScriptLength = 52;
|
||||||
const embeddedJSStart = 'script crossorigin=""';
|
const embeddedJSStart = 'script crossorigin=""';
|
||||||
let foundJSScript = true;
|
let foundJSScript = true;
|
||||||
let foundEmbeddedJS = true;
|
let foundEmbeddedJS = true;
|
||||||
|
|
Loading…
Reference in a new issue