Dev: Add time, timeEnd support

This commit is contained in:
surunzi
2016-03-20 18:44:26 +08:00
parent 6533011442
commit 155313d65e
5 changed files with 93 additions and 44 deletions

View File

@@ -38,9 +38,7 @@
"postcss-loader": "^0.8.1",
"sass-loader": "^3.1.2",
"style-loader": "^0.13.0",
"webpack": "^1.12.14"
},
"dependencies": {
"webpack": "^1.12.14",
"draggabilly": "^2.1.0"
}
}

View File

@@ -19,6 +19,45 @@ export default class Console extends Tool
this._initLog();
this._bindEvent();
}
overrideConsole()
{
var log = this._log;
window.console.log = (msg) =>
{
log.log(msg);
};
window.console.error = (msg) =>
{
log.error(msg);
};
window.console.warn = (msg) =>
{
log.warn(msg);
};
window.console.time = (name) =>
{
log.time(name);
};
window.console.timeEnd = (name) =>
{
log.timeEnd(name);
};
return this;
}
catchGlobalErr()
{
var log = this._log;
window.onerror = (errMsg, url, lineNum, column, errObj) =>
{
if (errObj) return log.error(errObj);
log.error(errMsg);
};
return this;
}
_appendTpl()
{
var $el = this._$el;
@@ -30,7 +69,7 @@ export default class Console extends Tool
_initLog()
{
this._log = new Log(this._$logs);
this._log.overrideConsole().catchGlobalErr();
this.overrideConsole().catchGlobalErr();
}
_bindEvent()
{

View File

@@ -58,37 +58,7 @@ export default class Log
this._logs = [];
this._tpl = require('./Log.hbs');
this._filter = 'all';
}
overrideConsole()
{
var self = this;
window.console.log = (msg) =>
{
self.log(msg);
};
window.console.error = (msg) =>
{
self.error(msg);
};
window.console.warn = (msg) =>
{
self.warn(msg);
};
return this;
}
catchGlobalErr()
{
var self = this;
window.onerror = (errMsg, url, lineNum, column, errObj) =>
{
if (errObj) return self.error(errObj);
self.error(errMsg);
};
return this;
this._timer = {};
}
clear()
{
@@ -196,6 +166,24 @@ export default class Log
{
return this.log(helpMsg);
}
time(name)
{
this._timer[name] = util.now();
return this;
}
timeEnd(name)
{
var startTime = this._timer[name];
if (!startTime) return;
var duration = util.now() - startTime;
this.log('<div class="eruda-blue">' + name + ':' + duration + 'ms</div>');
delete this._timer[name];
return this;
}
_runCmd(cmd)
{
cmd = util.trim(cmd);

View File

@@ -16,16 +16,21 @@
&.log, &.output {
border-bottom: 1px solid #b4b4b4;
}
&.log table {
width: 100%;
background: #fff;
border-collapse: collapse;
th {
background: $blue;
color: #fff;
&.log {
table {
width: 100%;
background: #fff;
border-collapse: collapse;
th {
background: $blue;
color: #fff;
}
th, td {
padding: 10px;
}
}
th, td {
padding: 10px;
.blue {
color: $blue;
}
}
&.error {

View File

@@ -801,6 +801,25 @@ module.exports = (function ()
return matcher;
})();
/* ------------------------------ now ------------------------------ */
var now;
_.now = (function ()
{
/* function
* now: Gets the number of milliseconds that have elapsed since the Unix epoch.
* return(number): Current timestamp.
*/
now = Date.now || function ()
{
return new Date().getTime();
};
return now;
})();
/* ------------------------------ optimizeCb ------------------------------ */
var optimizeCb;