Convert StatTimer to an ES6 class

This commit is contained in:
Jonas Jenwald 2017-12-06 13:59:03 +01:00
parent 6b1eda3e12
commit 50b72dec6e

View File

@ -461,20 +461,14 @@ function isExternalLinkTargetSet() {
} }
} }
var StatTimer = (function StatTimerClosure() { class StatTimer {
function rpad(str, pad, length) { constructor(enable = true) {
while (str.length < length) {
str += pad;
}
return str;
}
function StatTimer() {
this.started = Object.create(null); this.started = Object.create(null);
this.times = []; this.times = [];
this.enabled = true; this.enabled = !!enable;
} }
StatTimer.prototype = {
time: function StatTimer_time(name) { time(name) {
if (!this.enabled) { if (!this.enabled) {
return; return;
} }
@ -482,8 +476,9 @@ var StatTimer = (function StatTimerClosure() {
warn('Timer is already running for ' + name); warn('Timer is already running for ' + name);
} }
this.started[name] = Date.now(); this.started[name] = Date.now();
}, }
timeEnd: function StatTimer_timeEnd(name) {
timeEnd(name) {
if (!this.enabled) { if (!this.enabled) {
return; return;
} }
@ -497,29 +492,26 @@ var StatTimer = (function StatTimerClosure() {
}); });
// Remove timer from started so it can be called again. // Remove timer from started so it can be called again.
delete this.started[name]; delete this.started[name];
}, }
toString: function StatTimer_toString() {
var i, ii; toString() {
var times = this.times; let times = this.times;
var out = '';
// Find the longest name for padding purposes. // Find the longest name for padding purposes.
var longest = 0; let out = '', longest = 0;
for (i = 0, ii = times.length; i < ii; ++i) { for (let i = 0, ii = times.length; i < ii; ++i) {
var name = times[i]['name']; let name = times[i]['name'];
if (name.length > longest) { if (name.length > longest) {
longest = name.length; longest = name.length;
} }
} }
for (i = 0, ii = times.length; i < ii; ++i) { for (let i = 0, ii = times.length; i < ii; ++i) {
var span = times[i]; let span = times[i];
var duration = span.end - span.start; let duration = span.end - span.start;
out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; out += `${span['name'].padEnd(longest)} ${duration}ms\n`;
} }
return out; return out;
}, }
}; }
return StatTimer;
})();
export { export {
CustomStyle, CustomStyle,