Unified · Split
| @@ -70,13 +70,16 @@ app.Searcher.prototype = _proto · 69 unmodified lines | ||
| 70 | 70 | # View tree |
| 71 | 71 | # |
| 72 | 72 | |
| 73 | −@viewTree = (view = app.document, level = 0) -> | |
| 74 | − console.log "%c #{Array(level + 1).join(' ')}#{view.constructor.name}: #{view.activated}", | |
| 73 | +@viewTree = (view = app.document, level = 0, visited = []) -> | |
| 74 | + return if visited.indexOf(view) >= 0 | |
| 75 | + visited.push(view) | |
| 76 | + | |
| 77 | + console.log "%c #{Array(level + 1).join(' ')}#{view.constructor.name}: #{!!view.activated}", | |
| 75 | 78 | 'color:' + (view.activated and 'green' or 'red') |
| 76 | 79 | |
| 77 | − for key, value of view when key isnt 'view' and value | |
| 80 | + for own key, value of view when key isnt 'view' and value | |
| 78 | 81 | if typeof value is 'object' and value.setupElement |
| 79 | − @viewTree(value, level + 1) | |
| 82 | + @viewTree(value, level + 1, visited) | |
| 80 | 83 | else if value.constructor.toString().match(/Object\(\)/) |
| 81 | − @viewTree(v, level + 1) for k, v of value when value and typeof value is 'object' and value.setupElement | |
| 84 | + @viewTree(v, level + 1, visited) for own k, v of value when v and typeof v is 'object' and v.setupElement | |
| 82 | 85 | return |