Add: Auto display if error occurs option

This commit is contained in:
surunzi
2016-05-16 12:00:50 +08:00
parent 2d90e848b8
commit 62c8b6acf5
6 changed files with 17 additions and 8 deletions

View File

@@ -139,6 +139,12 @@ export default class Console extends Tool
{
parent.get('sources').set('json', data);
parent.showTool('sources');
}).on('insert', (log) =>
{
if (log.type === 'error' && this.config.get('displayIfErr'))
{
parent.show().showTool('console');
}
});
}
_hideInput()
@@ -165,7 +171,8 @@ export default class Console extends Tool
cfg.set(util.defaults(cfg.get(), {
catchGlobalErr: true,
overrideConsole: true
overrideConsole: true,
displayIfErr: false
}));
if (cfg.get('catchGlobalErr')) this.catchGlobalErr();

View File

@@ -195,6 +195,8 @@ export default class Log extends util.Emitter
this._lastLog = log;
}
this.emit('insert', log);
this._isUpdated = true;
return this.render();
}
@@ -276,7 +278,7 @@ var evalJs = jsInput => eval.call(window, jsInput);
function errToStr(err)
{
var lines = err.stack.split('\n'),
msg = `${lines[0]}<br/>`,
msg = `${err.message || lines[0]}<br/>`,
stack = `<div class="eruda-stack">${lines.slice(1).join('<br/>')}</div>`;
return msg + stack.replace(regJsUrl, match => `<a href="${match}" target="_blank">${match}</a>`);