diff --git a/src/display/dom_utils.js b/src/display/dom_utils.js index 2caecba9a..7a1b8f2d7 100644 --- a/src/display/dom_utils.js +++ b/src/display/dom_utils.js @@ -461,65 +461,57 @@ function isExternalLinkTargetSet() { } } -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) { - str += pad; - } - return str; - } - function StatTimer() { +class StatTimer { + constructor(enable = true) { this.started = Object.create(null); this.times = []; - this.enabled = true; + this.enabled = !!enable; } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) { - return; + + time(name) { + if (!this.enabled) { + return; + } + if (name in this.started) { + warn('Timer is already running for ' + name); + } + this.started[name] = Date.now(); + } + + timeEnd(name) { + if (!this.enabled) { + return; + } + if (!(name in this.started)) { + warn('Timer has not been started for ' + name); + } + this.times.push({ + 'name': name, + 'start': this.started[name], + 'end': Date.now(), + }); + // Remove timer from started so it can be called again. + delete this.started[name]; + } + + toString() { + let times = this.times; + // Find the longest name for padding purposes. + let out = '', longest = 0; + for (let i = 0, ii = times.length; i < ii; ++i) { + let name = times[i]['name']; + if (name.length > longest) { + longest = name.length; } - if (name in this.started) { - warn('Timer is already running for ' + name); - } - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) { - return; - } - if (!(name in this.started)) { - warn('Timer has not been started for ' + name); - } - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now(), - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var i, ii; - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) { - longest = name.length; - } - } - for (i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - }, - }; - return StatTimer; -})(); + } + for (let i = 0, ii = times.length; i < ii; ++i) { + let span = times[i]; + let duration = span.end - span.start; + out += `${span['name'].padEnd(longest)} ${duration}ms\n`; + } + return out; + } +} export { CustomStyle,