Showing the changes to assets/javascripts/debug.js (1 of 2 files). Show all
Unified · Split
| @@ -0,0 +1,112 @@ | ||
| 1 | +// TODO: This file was created by bulk-decaffeinate. | |
| 2 | +// Sanity-check the conversion and remove this comment. | |
| 3 | +/* | |
| 4 | + * decaffeinate suggestions: | |
| 5 | + * DS102: Remove unnecessary code created because of implicit returns | |
| 6 | + * DS203: Remove `|| {}` from converted for-own loops | |
| 7 | + * DS207: Consider shorter variations of null checks | |
| 8 | + * DS208: Avoid top-level this | |
| 9 | + * DS209: Avoid top-level return | |
| 10 | + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md | |
| 11 | + */ | |
| 12 | +if (!(typeof console !== 'undefined' && console !== null ? console.time : undefined) || !console.groupCollapsed) { return; } | |
| 13 | + | |
| 14 | +// | |
| 15 | +// App | |
| 16 | +// | |
| 17 | + | |
| 18 | +const _init = app.init; | |
| 19 | +app.init = function() { | |
| 20 | + console.time('Init'); | |
| 21 | + _init.call(app); | |
| 22 | + console.timeEnd('Init'); | |
| 23 | + return console.time('Load'); | |
| 24 | +}; | |
| 25 | + | |
| 26 | +const _start = app.start; | |
| 27 | +app.start = function() { | |
| 28 | + console.timeEnd('Load'); | |
| 29 | + console.time('Start'); | |
| 30 | + _start.call(app, ...arguments); | |
| 31 | + return console.timeEnd('Start'); | |
| 32 | +}; | |
| 33 | + | |
| 34 | +// | |
| 35 | +// Searcher | |
| 36 | +// | |
| 37 | + | |
| 38 | +const _super = app.Searcher; | |
| 39 | +const _proto = app.Searcher.prototype; | |
| 40 | + | |
| 41 | +app.Searcher = function() { | |
| 42 | + _super.apply(this, arguments); | |
| 43 | + | |
| 44 | + const _setup = this.setup.bind(this); | |
| 45 | + this.setup = function() { | |
| 46 | + console.groupCollapsed(`Search: ${this.query}`); | |
| 47 | + console.time('Total'); | |
| 48 | + return _setup(); | |
| 49 | + }; | |
| 50 | + | |
| 51 | + const _match = this.match.bind(this); | |
| 52 | + this.match = () => { | |
| 53 | + if (this.matcher) { console.timeEnd(this.matcher.name); } | |
| 54 | + return _match(); | |
| 55 | + }; | |
| 56 | + | |
| 57 | + const _setupMatcher = this.setupMatcher.bind(this); | |
| 58 | + this.setupMatcher = function() { | |
| 59 | + console.time(this.matcher.name); | |
| 60 | + return _setupMatcher(); | |
| 61 | + }; | |
| 62 | + | |
| 63 | + const _end = this.end.bind(this); | |
| 64 | + this.end = function() { | |
| 65 | + console.log(`Results: ${this.totalResults}`); | |
| 66 | + console.timeEnd('Total'); | |
| 67 | + console.groupEnd(); | |
| 68 | + return _end(); | |
| 69 | + }; | |
| 70 | + | |
| 71 | + const _kill = this.kill.bind(this); | |
| 72 | + this.kill = function() { | |
| 73 | + if (this.timeout) { | |
| 74 | + if (this.matcher) { console.timeEnd(this.matcher.name); } | |
| 75 | + console.groupEnd(); | |
| 76 | + console.timeEnd('Total'); | |
| 77 | + console.warn('Killed'); | |
| 78 | + } | |
| 79 | + return _kill(); | |
| 80 | + }; | |
| 81 | + | |
| 82 | +}; | |
| 83 | + | |
| 84 | +$.extend(app.Searcher, _super); | |
| 85 | +_proto.constructor = app.Searcher; | |
| 86 | +app.Searcher.prototype = _proto; | |
| 87 | + | |
| 88 | +// | |
| 89 | +// View tree | |
| 90 | +// | |
| 91 | + | |
| 92 | +this.viewTree = function(view, level, visited) { | |
| 93 | + if (view == null) { view = app.document; } | |
| 94 | + if (level == null) { level = 0; } | |
| 95 | + if (visited == null) { visited = []; } | |
| 96 | + if (visited.indexOf(view) >= 0) { return; } | |
| 97 | + visited.push(view); | |
| 98 | + | |
| 99 | + console.log(`%c ${Array(level + 1).join(' ')}${view.constructor.name}: ${!!view.activated}`, | |
| 100 | + 'color:' + ((view.activated && 'green') || 'red')); | |
| 101 | + | |
| 102 | + for (var key of Object.keys(view || {})) { | |
| 103 | + var value = view[key]; | |
| 104 | + if ((key !== 'view') && value) { | |
| 105 | + if ((typeof value === 'object') && value.setupElement) { | |
| 106 | + this.viewTree(value, level + 1, visited); | |
| 107 | + } else if (value.constructor.toString().match(/Object\(\)/)) { | |
| 108 | + for (var k of Object.keys(value || {})) { var v = value[k]; if (v && (typeof v === 'object') && v.setupElement) { this.viewTree(v, level + 1, visited); } } | |
| 109 | + } | |
| 110 | + } | |
| 111 | + } | |
| 112 | +}; | |