|
198 | 198 | on-mouseleave="_handleHeaderMouseLeave"
|
199 | 199 | hidden="[[!level]]">
|
200 | 200 | <div id="bar" style$="width:{{_barWidth(node)}}"></div>
|
201 |
| - <span id="time">{{_percent(node.metrics.time)}}</span> |
| 201 | + <span id="time">{{_percent(node)}}</span> |
202 | 202 | <span id="name" style$="padding-left:[[level]]em;">
|
203 | 203 | <span id="disclosure">
|
204 | 204 | <span hidden="[[!node.children.length]]">
|
|
208 | 208 | </span>{{node.name}}
|
209 | 209 | </span>
|
210 | 210 | <span id="provenance">{{_provenance(node)}} </span>
|
211 |
| - <span id="utilization" style$="background-color:{{_flameColor(node)}}"> |
| 211 | + <span id="utilization" hidden="[[!node.metrics]]" |
| 212 | + style$="background-color:{{_flameColor(node)}}"> |
212 | 213 | {{_utilization(node)}}</span>
|
213 | 214 | </div>
|
214 | 215 | <template is="dom-if" if="[[expanded]]">
|
|
274 | 275 | },
|
275 | 276 | _handleHeaderMouseEnter: function(e) { this.headerHover(this); },
|
276 | 277 | _handleHeaderMouseLeave: function(e) { this.headerHover(null); },
|
277 |
| - _percent: percent, |
| 278 | + _percent: function(node) { |
| 279 | + return (node.metrics && node.metrics.time) |
| 280 | + ? percent(node.metrics.time) : ""; |
| 281 | + }, |
278 | 282 | _provenance: function(node) {
|
279 | 283 | return (node.xla && node.xla.provenance)
|
280 | 284 | ? node.xla.provenance.replace(/^.*\//, '') : "";
|
|
286 | 290 | return flameColor(utilization(node), 1, 0.2);
|
287 | 291 | },
|
288 | 292 | _barWidth: function(node) {
|
289 |
| - return percent(node.metrics.time); |
| 293 | + return (node.metrics && node.metrics.time) |
| 294 | + ? percent(node.metrics.time) : 0; |
290 | 295 | },
|
291 | 296 | _selectedChanged: function(v) { this.classList.toggle('selected', v); }
|
292 | 297 | });
|
|
0 commit comments