| OLD | NEW |
| 1 <!DOCTYPE html><html><head> | 1 <!DOCTYPE html><html><head> |
| 2 | 2 |
| 3 | 3 |
| 4 <meta charset="utf-8"> | 4 <meta charset="utf-8"> |
| 5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c
ss"> | 5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c
ss"> |
| 6 | 6 |
| 7 <title>Dart VM Observatory</title> | 7 <title>Dart VM Observatory</title> |
| 8 <script type="text/javascript" src="https://www.google.com/jsapi"></script> | 8 <script type="text/javascript" src="https://www.google.com/jsapi"></script> |
| 9 | 9 |
| 10 | 10 |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 </li> | 221 </li> |
| 222 </template> | 222 </template> |
| 223 </ul> | 223 </ul> |
| 224 </template> | 224 </template> |
| 225 </template> | 225 </template> |
| 226 | 226 |
| 227 </polymer-element> | 227 </polymer-element> |
| 228 <polymer-element name="service-ref" extends="observatory-element"> | 228 <polymer-element name="service-ref" extends="observatory-element"> |
| 229 | 229 |
| 230 </polymer-element><polymer-element name="class-ref" extends="service-ref"> | 230 </polymer-element><polymer-element name="class-ref" extends="service-ref"> |
| 231 <template> | 231 |
| 232 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> | 232 <template><a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template> |
| 233 </template> | 233 |
| 234 | 234 |
| 235 </polymer-element> | 235 </polymer-element> |
| 236 <polymer-element name="error-view" extends="observatory-element"> | 236 <polymer-element name="curly-block"> |
| 237 <template> | |
| 238 <div class="row"> | |
| 239 <div class="col-md-8 col-md-offset-2"> | |
| 240 <div class="panel panel-danger"> | |
| 241 <div class="panel-heading">{{ error.kind }}</div> | |
| 242 <div class="panel-body"> | |
| 243 <p>{{ error.message }}</p> | |
| 244 </div> | |
| 245 </div> | |
| 246 </div> | |
| 247 </div> | |
| 248 </template> | |
| 249 | |
| 250 </polymer-element><polymer-element name="field-ref" extends="service-ref"> | |
| 251 <template> | |
| 252 <div> | |
| 253 <template if="{{ ref['final'] }}"> final </template> | |
| 254 <template if="{{ ref['const'] }}"> const </template> | |
| 255 <template if="{{ (ref['declared_type']['name'] == 'dynamic' && !ref['f
inal'] && !ref['const']) }}"> | |
| 256 var | |
| 257 </template> | |
| 258 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}"> | |
| 259 <class-ref ref="{{ ref['declared_type'] }}"></class-ref> | |
| 260 </template> | |
| 261 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> | |
| 262 </div> | |
| 263 </template> </polymer-element><polymer-element name="function-ref" extends="ser
vice-ref"> | |
| 264 <template> | |
| 265 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> | |
| 266 </template> | |
| 267 | |
| 268 </polymer-element><polymer-element name="curly-block"> | |
| 269 <template> | 237 <template> |
| 270 <style> | 238 <style> |
| 271 .idle { | 239 .idle { |
| 272 display: inline-block; | 240 display: inline-block; |
| 273 color: #0489c3; | 241 color: #0489c3; |
| 274 cursor: pointer; | 242 cursor: pointer; |
| 275 } | 243 } |
| 276 .busy { | 244 .busy { |
| 277 display: inline-block; | 245 display: inline-block; |
| 278 color: white; | 246 color: white; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 301 <template if="{{ !busy }}"> | 269 <template if="{{ !busy }}"> |
| 302 {<a on-click="{{ toggleExpand }}"><div class="idle"> ⊞ &
nbsp;</div></a>} | 270 {<a on-click="{{ toggleExpand }}"><div class="idle"> ⊞ &
nbsp;</div></a>} |
| 303 </template> | 271 </template> |
| 304 </template> | 272 </template> |
| 305 </template> | 273 </template> |
| 306 | 274 |
| 307 </polymer-element> | 275 </polymer-element> |
| 308 <polymer-element name="instance-ref" extends="service-ref"> | 276 <polymer-element name="instance-ref" extends="service-ref"> |
| 309 <template> | 277 <template> |
| 310 <style> | 278 <style> |
| 311 .member { | 279 .memberList { |
| 280 display: table; |
| 281 } |
| 282 .memberItem { |
| 283 display: table-row; |
| 284 } |
| 285 .memberName, .memberValue { |
| 286 display: table-cell; |
| 312 vertical-align: top; | 287 vertical-align: top; |
| 313 padding: 1px 0 1px 1em; | 288 padding: 3px 0 3px 1em; |
| 289 font: 400 14px 'Montserrat', sans-serif; |
| 314 } | 290 } |
| 315 </style> | 291 </style> |
| 316 <div> | 292 <div> |
| 317 <template if="{{ isUnexpected(ref.serviceType) }}"> | 293 <template if="{{ isUnexpected(ref.serviceType) }}"> |
| 318 unexpected reference type <{{ ref.serviceType }}> | 294 unexpected reference type <{{ ref.serviceType }}> |
| 319 </template> | 295 </template> |
| 320 | 296 |
| 321 <template if="{{ isError(ref.serviceType) }}"> | 297 <template if="{{ isError(ref.serviceType) }}"> |
| 322 <pre>{{ ref.message }}</pre> | 298 <pre>{{ ref.message }}</pre> |
| 323 </template> | 299 </template> |
| 324 | 300 |
| 325 <template if="{{ isNull(ref.serviceType) }}"> | 301 <template if="{{ isNull(ref.serviceType) }}"> |
| 326 <div title="{{ hoverText }}">{{ ref['preview'] }}</div> | 302 <div title="{{ hoverText }}">{{ ref['preview'] }}</div> |
| 327 </template> | 303 </template> |
| 328 | 304 |
| 329 <template if="{{ (isString(ref.serviceType) || | 305 <template if="{{ (isString(ref.serviceType) || |
| 330 isBool(ref.serviceType) || | 306 isBool(ref.serviceType) || |
| 331 isInt(ref.serviceType)) }}"> | 307 isInt(ref.serviceType)) }}"> |
| 332 <a href="{{ url }}">{{ ref['preview'] }}</a> | 308 <a href="{{ url }}">{{ ref['preview'] }}</a> |
| 333 </template> | 309 </template> |
| 334 | 310 |
| 335 <template if="{{ isClosure(ref.serviceType) }}"> | 311 <template if="{{ isClosure(ref.serviceType) }}"> |
| 336 <a href="{{ url }}"> | 312 <a href="{{ url }}"> |
| 313 <!-- TODO(turnidge): Switch this to fully-qualified function --> |
| 337 {{ ref['closureFunc']['user_name'] }} | 314 {{ ref['closureFunc']['user_name'] }} |
| 338 </a> | 315 </a> |
| 339 </template> | 316 </template> |
| 340 | 317 |
| 341 <template if="{{ isInstance(ref.serviceType) }}"> | 318 <template if="{{ isInstance(ref.serviceType) }}"> |
| 342 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a> | 319 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a> |
| 343 <curly-block callback="{{ expander() }}"> | 320 <curly-block callback="{{ expander() }}"> |
| 344 <table> | 321 <div class="memberList"> |
| 345 <tbody><tr template="" repeat="{{ field in ref['fields'] }}"> | 322 <template repeat="{{ field in ref['fields'] }}"> |
| 346 <td class="member">{{ field['decl']['user_name'] }}</td> | 323 <div class="memberItem"> |
| 347 <td class="member"> | 324 <div class="memberName"> |
| 348 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 325 {{ field['decl']['user_name'] }} |
| 349 </td> | 326 </div> |
| 350 </tr> | 327 <div class="memberValue"> |
| 351 </tbody></table> | 328 <instance-ref ref="{{ field['value'] }}"></instance-ref> |
| 329 </div> |
| 330 </div> |
| 331 </template> |
| 332 </div> |
| 352 </curly-block> | 333 </curly-block> |
| 353 </template> | 334 </template> |
| 354 | 335 |
| 355 <template if="{{ isList(ref.serviceType) }}"> | 336 <template if="{{ isList(ref.serviceType) }}"> |
| 356 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['le
ngth']}})</a> | 337 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['le
ngth']}})</a> |
| 357 <curly-block callback="{{ expander() }}"> | 338 <curly-block callback="{{ expander() }}"> |
| 358 <table> | 339 <div class="memberList"> |
| 359 <tbody><tr template="" repeat="{{ element in ref['elements'] }}"> | 340 <template repeat="{{ element in ref['elements'] }}"> |
| 360 <td class="member">[{{ element['index']}}]</td> | 341 <div class="memberItem"> |
| 361 <td class="member"> | 342 <div class="memberName">[{{ element['index']}}]</div> |
| 362 <instance-ref ref="{{ element['value'] }}"></instance-ref> | 343 <div class="memberValue"> |
| 363 </td> | 344 <instance-ref ref="{{ element['value'] }}"></instance-ref> |
| 364 </tr> | 345 </div> |
| 365 </tbody></table> | 346 </div> |
| 347 </template> |
| 348 </div> |
| 366 </curly-block> | 349 </curly-block> |
| 367 </template> | 350 </template> |
| 368 | 351 |
| 369 </div> | 352 </div> |
| 370 </template> | 353 </template> |
| 371 | 354 |
| 372 </polymer-element> | 355 </polymer-element> |
| 356 <polymer-element name="eval-box" extends="observatory-element"> |
| 357 <template> |
| 358 <style> |
| 359 .textbox { |
| 360 width: 80ex; |
| 361 font: 400 16px 'Montserrat', sans-serif; |
| 362 } |
| 363 .bigtextbox { |
| 364 font: 400 16px 'Montserrat', sans-serif; |
| 365 } |
| 366 .button { |
| 367 font: 400 16px 'Montserrat', sans-serif; |
| 368 } |
| 369 .radios { |
| 370 display: inline; |
| 371 } |
| 372 .radios label{ |
| 373 padding-left: 15px; |
| 374 } |
| 375 .historyExpr, .historyValue { |
| 376 vertical-align: text-top; |
| 377 font: 400 14px 'Montserrat', sans-serif; |
| 378 } |
| 379 .historyExpr a { |
| 380 display: block; |
| 381 color: black; |
| 382 text-decoration: none; |
| 383 padding: 6px 6px; |
| 384 cursor: pointer; |
| 385 white-space: pre-line; |
| 386 } |
| 387 .historyExpr a:hover { |
| 388 background-color: #e1f5fe |
| 389 } |
| 390 .historyValue { |
| 391 display: block; |
| 392 padding: 6px 6px; |
| 393 } |
| 394 </style> |
| 395 <form> |
| 396 <template if="{{ lineMode == '1-line' }}"> |
| 397 <input class="textbox" type="text" value="{{ text }}"> |
| 398 </template> |
| 399 <template if="{{ lineMode == 'N-line' }}"> |
| 400 <textarea class="bigtextbox" rows="5" cols="80" value="{{ text }}"></tex
tarea> |
| 401 </template> |
| 402 |
| 403 <input class="button" type="submit" value="Evaluate" on-click="{{ eval }}"
> |
| 404 <div class="radios" on-change="{{ updateLineMode }}"> |
| 405 <label for="1-line">1-line |
| 406 <input type="radio" name="lineMode" value="1-line" checked=""> |
| 407 </label> |
| 408 <label for="N-line">N-line |
| 409 <input type="radio" name="lineMode" value="N-line"> |
| 410 </label> |
| 411 </div> |
| 412 </form> |
| 413 |
| 414 <br> |
| 415 <template if="{{ results.isNotEmpty }}"> |
| 416 <table> |
| 417 <tbody><tr template="" repeat="{{ result in results }}"> |
| 418 <td class="historyExpr"> |
| 419 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr']
}}">{{ result['expr'] }}</a> |
| 420 </td> |
| 421 <td class="historyValue"> |
| 422 <template if="{{ result['value'] == null }}"> |
| 423 <div style="color:#aaa;cursor:wait;"><pending></div> |
| 424 </template> |
| 425 <template if="{{ result['value'] != null }}"> |
| 426 <instance-ref isolate="{{ isolate }}" ref="{{ result['value'] }}"> |
| 427 </instance-ref> |
| 428 </template> |
| 429 </td> |
| 430 </tr> |
| 431 </tbody></table> |
| 432 </template> |
| 433 </template> |
| 434 </polymer-element> |
| 435 |
| 436 |
| 437 <polymer-element name="field-ref" extends="service-ref"> |
| 438 <template> |
| 439 <div> |
| 440 <template if="{{ ref['final'] }}"> final </template> |
| 441 <template if="{{ ref['const'] }}"> const </template> |
| 442 <template if="{{ (ref['declared_type']['name'] == 'dynamic' && !ref['f
inal'] && !ref['const']) }}"> |
| 443 var |
| 444 </template> |
| 445 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}"> |
| 446 <class-ref ref="{{ ref['declared_type'] }}"></class-ref> |
| 447 </template> |
| 448 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> |
| 449 </div> |
| 450 </template> </polymer-element><polymer-element name="function-ref" extends="ser
vice-ref"> |
| 451 <template><!-- These comments are here to allow newlines. |
| 452 --><template if="{{ qualified && !hasParent && hasClass }}"
><!-- |
| 453 --><class-ref ref="{{ ref['class'] }}"></class-ref>.</template><!-- |
| 454 --><template if="{{ qualified && hasParent }}"><!-- |
| 455 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}"> |
| 456 </function-ref>.<!-- |
| 457 --></template><a href="{{ url }}">{{ name }}</a><!-- |
| 458 --></template> |
| 459 |
| 460 </polymer-element> |
| 373 <polymer-element name="library-ref" extends="service-ref"> | 461 <polymer-element name="library-ref" extends="service-ref"> |
| 374 <template> | 462 <template> |
| 375 <a href="{{ url }}">{{ name }}</a> | 463 <a href="{{ url }}">{{ name }}</a> |
| 376 </template> | 464 </template> |
| 377 | 465 |
| 378 </polymer-element><polymer-element name="class-view" extends="observatory-elemen
t"> | 466 </polymer-element><polymer-element name="script-ref" extends="service-ref"> |
| 467 <template> |
| 468 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> |
| 469 </template> |
| 470 |
| 471 </polymer-element> |
| 472 <polymer-element name="class-view" extends="observatory-element"> |
| 379 <template> | 473 <template> |
| 474 <style> |
| 475 .content { |
| 476 padding-left: 10%; |
| 477 font: 400 14px 'Montserrat', sans-serif; |
| 478 } |
| 479 h1 { |
| 480 font: 400 18px 'Montserrat', sans-serif; |
| 481 } |
| 482 .memberList { |
| 483 display: table; |
| 484 } |
| 485 .memberItem { |
| 486 display: table-row; |
| 487 } |
| 488 .memberName, .memberValue { |
| 489 display: table-cell; |
| 490 vertical-align: top; |
| 491 padding: 3px 0 3px 1em; |
| 492 font: 400 14px 'Montserrat', sans-serif; |
| 493 } |
| 494 </style> |
| 495 |
| 380 <nav-bar> | 496 <nav-bar> |
| 381 <top-nav-menu></top-nav-menu> | 497 <top-nav-menu></top-nav-menu> |
| 382 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> | 498 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> |
| 383 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu> | 499 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu> |
| 384 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> | 500 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> |
| 385 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 501 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 386 </nav-bar> | 502 </nav-bar> |
| 387 | 503 |
| 388 <div class="row"> | 504 <div class="content"> |
| 389 <div class="col-md-8 col-md-offset-2"> | 505 <h1> |
| 390 <div class="panel panel-warning"> | 506 <template if="{{ cls['abstract'] }}"> |
| 391 <div class="panel-heading"> | 507 abstract |
| 392 class <strong>{{ cls.name }}</strong> | 508 </template> |
| 393 <template if="{{ cls['super']['type'] != 'Null' }}"> | 509 <template if="{{ cls['patch'] }}"> |
| 394 extends | 510 patch |
| 395 <class-ref ref="{{ cls['super'] }}"></class-ref> | 511 </template> |
| 396 </template> | 512 class {{ cls.name }} |
| 397 <p></p> | 513 </h1> |
| 398 <library-ref ref="{{ cls['library'] }}"></library-ref> | 514 <div class="memberList"> |
| 515 <div class="memberItem"> |
| 516 <div class="memberName">library</div> |
| 517 <div class="memberValue"> |
| 518 <library-ref ref="{{ cls['library'] }}"></library-ref> |
| 519 </div> |
| 399 </div> | 520 </div> |
| 400 <div class="panel-body"> | 521 <div class="memberItem"> |
| 401 <table class="table table-hover"> | 522 <div class="memberName">script</div> |
| 402 <tbody> | 523 <div class="memberValue"> |
| 403 <tr> | 524 <script-ref ref="{{ cls['script'] }}" line="{{ cls['line'] }}"> |
| 404 <td>Abstract</td><td>{{ cls['abstract'] }}</td> | 525 </script-ref> |
| 405 </tr> | 526 </div> |
| 406 <tr> | |
| 407 <td>Const</td><td>{{ cls['const'] }}</td> | |
| 408 </tr> | |
| 409 <tr> | |
| 410 <td>Finalized</td><td>{{ cls['const'] }}</td> | |
| 411 </tr> | |
| 412 <tr> | |
| 413 <td>Implemented</td><td>{{ cls['implemented'] }}</td> | |
| 414 </tr> | |
| 415 <tr> | |
| 416 <td>Patch</td><td>{{ cls['patch'] }}</td> | |
| 417 </tr> | |
| 418 <tr> | |
| 419 <td>VM Name</td><td>{{ cls['name'] }}</td> | |
| 420 </tr> | |
| 421 </tbody> | |
| 422 </table> | |
| 423 <template if="{{ cls['error'] == null }}"> | |
| 424 <blockquote><strong>Fields</strong></blockquote> | |
| 425 <table class="table table-hover"> | |
| 426 <tbody> | |
| 427 <tr template="" repeat="{{ field in cls['fields'] }}"> | |
| 428 <td><field-ref ref="{{ field }}"></field-ref></td> | |
| 429 <td><instance-ref ref="{{ field['value'] }}"></instance-ref></
td> | |
| 430 </tr> | |
| 431 </tbody> | |
| 432 </table> | |
| 433 <blockquote><strong>Functions</strong></blockquote> | |
| 434 <table class="table table-hover"> | |
| 435 <thead> | |
| 436 <tr> | |
| 437 <th>User Name</th> | |
| 438 <th>VM Name</th> | |
| 439 </tr> | |
| 440 </thead> | |
| 441 <tbody> | |
| 442 <tr template="" repeat="{{ function in cls['functions'] }}"> | |
| 443 <td><function-ref ref="{{ function }}"></function-ref></td> | |
| 444 <td><function-ref ref="{{ function }}" internal=""></function-
ref></td> | |
| 445 </tr> | |
| 446 </tbody> | |
| 447 </table> | |
| 448 </template> | |
| 449 <template if="{{ cls['error'] != null }}"> | |
| 450 <error-view error_obj="{{ cls['error'] }}"></error-view> | |
| 451 </template> | |
| 452 </div> | 527 </div> |
| 528 |
| 529 <div class="memberItem"> </div> |
| 530 |
| 531 <template if="{{ cls['super']['type'] != 'Null' }}"> |
| 532 <div class="memberItem"> |
| 533 <div class="memberName">extends</div> |
| 534 <div class="memberValue"> |
| 535 <class-ref ref="{{ cls['super'] }}"></class-ref> |
| 536 </div> |
| 537 </div> |
| 538 </template> |
| 539 <template if="{{ cls['subclasses'].length > 0 }}"> |
| 540 <div class="memberItem"> |
| 541 <div class="memberName">extended by</div> |
| 542 <div class="memberValue"> |
| 543 <template repeat="{{ subclass in cls['subclasses'] }}"> |
| 544 <class-ref ref="{{ subclass }}"></class-ref> |
| 545 </template> |
| 546 </div> |
| 547 </div> |
| 548 </template> |
| 549 |
| 550 <div class="memberItem"> </div> |
| 551 |
| 552 <template if="{{ cls['interfaces'].length > 0 }}"> |
| 553 <div class="memberItem"> |
| 554 <div class="memberName">implements</div> |
| 555 <div class="memberValue"> |
| 556 <template repeat="{{ interface in cls['interfaces'] }}"> |
| 557 <class-ref ref="{{ interface }}"></class-ref> |
| 558 </template> |
| 559 </div> |
| 560 </div> |
| 561 </template> |
| 562 <template if="{{ cls.name != cls.vmName }}"> |
| 563 <div class="memberItem"> |
| 564 <div class="memberName">vm name</div> |
| 565 <div class="memberValue">{{ cls.vmName }}</div> |
| 566 </div> |
| 567 </template> |
| 453 </div> | 568 </div> |
| 454 </div> | 569 </div> |
| 570 |
| 571 <template if="{{ cls['error'] != null }}"> |
| 572 <!-- TODO(turnidge): Don't use instance-ref for error display here --> |
| 573 <instance-ref ref="{{ cls['error'] }}"></instance-ref> |
| 574 </template> |
| 575 |
| 576 <hr> |
| 577 |
| 578 <div class="content"> |
| 579 <template if="{{ cls['fields'].isNotEmpty }}"> |
| 580 fields ({{ cls['fields'].length }}) |
| 581 <curly-block> |
| 582 <div class="memberList"> |
| 583 <template repeat="{{ field in cls['fields'] }}"> |
| 584 <div class="memberItem"> |
| 585 <div class="memberName"> |
| 586 <field-ref ref="{{ field }}"></field-ref> |
| 587 </div> |
| 588 <div class="memberValue"> |
| 589 <template if="{{ field['value'] != null }}"> |
| 590 <instance-ref ref="{{ field['value'] }}"></instance-ref> |
| 591 </template> |
| 592 </div> |
| 593 </div> |
| 594 </template> |
| 595 </div> |
| 596 </curly-block><br> |
| 597 </template> |
| 598 |
| 599 <template if="{{ cls['functions'].isNotEmpty }}"> |
| 600 functions ({{ cls['functions'].length }}) |
| 601 <curly-block> |
| 602 <div class="memberList"> |
| 603 <template repeat="{{ function in cls['functions'] }}"> |
| 604 <div class="memberItem"> |
| 605 <div class="memberValue"> |
| 606 <function-ref ref="{{ function }}" qualified="{{ false }}"> |
| 607 </function-ref> |
| 608 </div> |
| 609 </div> |
| 610 </template> |
| 611 </div> |
| 612 </curly-block><br> |
| 613 </template> |
| 455 </div> | 614 </div> |
| 615 |
| 616 <hr> |
| 617 |
| 618 <div class="content"> |
| 619 <eval-box callback="{{ eval }}"></eval-box> |
| 620 </div> |
| 621 <br><br><br><br> |
| 622 <br><br><br><br> |
| 456 </template> | 623 </template> |
| 457 | 624 |
| 458 </polymer-element> | 625 </polymer-element> |
| 459 <polymer-element name="code-ref" extends="service-ref"> | 626 <polymer-element name="code-ref" extends="service-ref"> |
| 460 <template> | 627 <template> |
| 461 <a href="{{ url }}">{{ name }}</a> | 628 <a href="{{ url }}">{{ name }}</a> |
| 462 </template> | 629 </template> |
| 463 | 630 |
| 464 </polymer-element><polymer-element name="code-view" extends="observatory-element
"> | 631 </polymer-element><polymer-element name="code-view" extends="observatory-element
"> |
| 465 <template> | 632 <template> |
| 466 <nav-bar> | 633 <nav-bar> |
| 467 <top-nav-menu></top-nav-menu> | 634 <top-nav-menu></top-nav-menu> |
| 468 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu> | 635 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu> |
| 469 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu> | 636 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu> |
| 470 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 637 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 471 </nav-bar> | 638 </nav-bar> |
| 472 <style> | 639 <style> |
| 473 .content { | 640 .content { |
| 474 padding-left: 10%; | 641 padding-left: 10%; |
| 475 font: 400 14px 'Montserrat', sans-serif; | 642 font: 400 14px 'Montserrat', sans-serif; |
| 476 } | 643 } |
| 477 h1 { | 644 h1 { |
| 478 font: 400 18px 'Montserrat', sans-serif; | 645 font: 400 18px 'Montserrat', sans-serif; |
| 479 } | 646 } |
| 480 .member, .memberHeader { | 647 .memberList { |
| 648 display: table; |
| 649 } |
| 650 .memberItem { |
| 651 display: table-row; |
| 652 } |
| 653 .memberName, .memberValue { |
| 654 display: table-cell; |
| 481 vertical-align: top; | 655 vertical-align: top; |
| 482 padding: 3px 0 3px 1em; | 656 padding: 3px 0 3px 1em; |
| 483 font: 400 14px 'Montserrat', sans-serif; | 657 font: 400 14px 'Montserrat', sans-serif; |
| 484 } | 658 } |
| 485 .monospace { | 659 .monospace { |
| 486 font-family: consolas, courier, monospace; | 660 font-family: consolas, courier, monospace; |
| 487 font-size: 1em; | 661 font-size: 1em; |
| 488 line-height: 1.2em; | 662 line-height: 1.2em; |
| 489 white-space: nowrap; | 663 white-space: nowrap; |
| 490 } | 664 } |
| 491 </style> | 665 </style> |
| 492 <div class="content"> | 666 <div class="content"> |
| 493 <h1>Code for {{ code.name }}</h1> | 667 <h1>Code for {{ code.name }}</h1> |
| 494 <table> | 668 <div class="memberList"> |
| 495 <tbody><tr> | 669 <div class="memberItem"> |
| 496 <td class="memberHeader">kind</td> | 670 <div class="memberName">kind</div> |
| 497 <td class="member">{{code.kind}}</td> | 671 <div class="memberValue">{{code.kind}}</div> |
| 498 </tr> | 672 </div> |
| 499 <tr> | 673 <div class="memberItem"> |
| 500 <td class="memberHeader">function</td> | 674 <div class="memberName">function</div> |
| 501 <td class="member"> | 675 <div class="memberValue"> |
| 502 <function-ref ref="{{code.function}}"> | 676 <function-ref ref="{{code.function}}"> |
| 503 </function-ref> | 677 </function-ref> |
| 504 </td> | 678 </div> |
| 505 </tr> | 679 </div> |
| 506 <tr> | 680 <div class="memberItem"> |
| 507 <td class="memberHeader">Inclusive</td> | 681 <div class="memberName">Inclusive</div> |
| 508 <td class="member">{{ code.formattedInclusiveTicks }}</td> | 682 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div> |
| 509 </tr> | 683 </div> |
| 510 <tr> | 684 <div class="memberItem"> |
| 511 <td class="memberHeader">Exclusive</td> | 685 <div class="memberName">Exclusive</div> |
| 512 <td class="member">{{ code.formattedExclusiveTicks }}</td> | 686 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div> |
| 513 </tr> | 687 </div> |
| 514 <tr> | 688 <div class="memberItem"> |
| 515 <td class="memberHeader">Constant object pool</td> | 689 <div class="memberName">Constant object pool</div> |
| 516 <td class="member"> | 690 <div class="memberValue"> |
| 517 <instance-ref ref="{{ code.objectPool }}"></instance-ref> | 691 <instance-ref ref="{{ code.objectPool }}"></instance-ref> |
| 518 </td> | 692 </div> |
| 519 </tr> | 693 </div> |
| 520 </tbody></table> | 694 </div> |
| 521 </div> | 695 </div> |
| 522 <hr> | 696 <hr> |
| 523 <div class="content"> | 697 <div class="content"> |
| 524 <template if="{{ code.hasDisassembly }}"> | 698 <template if="{{ code.hasDisassembly }}"> |
| 525 <div class="row"> | 699 <div class="row"> |
| 526 <div class="col-md-2 memberHeader">Inclusive</div> | 700 <div class="col-md-2 memberHeader">Inclusive</div> |
| 527 <div class="col-md-2 memberHeader">Exclusive</div> | 701 <div class="col-md-2 memberHeader">Exclusive</div> |
| 528 <div class="col-md-2 memberHeader">Address</div> | 702 <div class="col-md-2 memberHeader">Address</div> |
| 529 <div class="col-md-6 memberHeader">Disassembly</div> | 703 <div class="col-md-6 memberHeader">Disassembly</div> |
| 530 </div> | 704 </div> |
| (...skipping 15 matching lines...) Expand all Loading... |
| 546 <div class="well row"> | 720 <div class="well row"> |
| 547 <a on-click="toggleDisplay" class="btn muted unselectable"> | 721 <a on-click="toggleDisplay" class="btn muted unselectable"> |
| 548 Raw message... <i class="{{ iconClass }}"></i> | 722 Raw message... <i class="{{ iconClass }}"></i> |
| 549 </a> | 723 </a> |
| 550 <div style="display: {{ displayValue }}" class="well"> | 724 <div style="display: {{ displayValue }}" class="well"> |
| 551 <content></content> | 725 <content></content> |
| 552 </div> | 726 </div> |
| 553 </div> | 727 </div> |
| 554 </template> | 728 </template> |
| 555 | 729 |
| 556 </polymer-element><polymer-element name="eval-box" extends="observatory-element"
> | 730 </polymer-element><polymer-element name="error-view" extends="observatory-elemen
t"> |
| 557 <template> | 731 <template> |
| 558 <style> | 732 <div class="row"> |
| 559 .textbox { | 733 <div class="col-md-8 col-md-offset-2"> |
| 560 width: 80ex; | 734 <div class="panel panel-danger"> |
| 561 font: 400 16px 'Montserrat', sans-serif; | 735 <div class="panel-heading">{{ error.kind }}</div> |
| 562 } | 736 <div class="panel-body"> |
| 563 .bigtextbox { | 737 <p>{{ error.message }}</p> |
| 564 font: 400 16px 'Montserrat', sans-serif; | 738 </div> |
| 565 } | |
| 566 .button { | |
| 567 font: 400 16px 'Montserrat', sans-serif; | |
| 568 } | |
| 569 .radios { | |
| 570 display: inline; | |
| 571 } | |
| 572 .radios label{ | |
| 573 padding-left: 15px; | |
| 574 } | |
| 575 .historyExpr, .historyValue { | |
| 576 vertical-align: text-top; | |
| 577 font: 400 14px 'Montserrat', sans-serif; | |
| 578 } | |
| 579 .historyExpr a { | |
| 580 display: block; | |
| 581 color: black; | |
| 582 text-decoration: none; | |
| 583 padding: 6px 6px; | |
| 584 cursor: pointer; | |
| 585 white-space: pre-line; | |
| 586 } | |
| 587 .historyExpr a:hover { | |
| 588 background-color: #e1f5fe | |
| 589 } | |
| 590 .historyValue { | |
| 591 display: block; | |
| 592 padding: 6px 6px; | |
| 593 } | |
| 594 </style> | |
| 595 <form> | |
| 596 <template if="{{ lineMode == '1-line' }}"> | |
| 597 <input class="textbox" type="text" value="{{ text }}"> | |
| 598 </template> | |
| 599 <template if="{{ lineMode == 'N-line' }}"> | |
| 600 <textarea class="bigtextbox" rows="5" cols="80" value="{{ text }}"></tex
tarea> | |
| 601 </template> | |
| 602 | |
| 603 <input class="button" type="submit" value="Evaluate" on-click="{{ eval }}"
> | |
| 604 <div class="radios" on-change="{{ updateLineMode }}"> | |
| 605 <label for="1-line">1-line | |
| 606 <input type="radio" name="lineMode" value="1-line" checked=""> | |
| 607 </label> | |
| 608 <label for="N-line">N-line | |
| 609 <input type="radio" name="lineMode" value="N-line"> | |
| 610 </label> | |
| 611 </div> | 739 </div> |
| 612 </form> | 740 </div> |
| 613 | 741 </div> |
| 614 <br> | |
| 615 <template if="{{ results.isNotEmpty }}"> | |
| 616 <table> | |
| 617 <tbody><tr template="" repeat="{{ result in results }}"> | |
| 618 <td class="historyExpr"> | |
| 619 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr']
}}">{{ result['expr'] }}</a> | |
| 620 </td> | |
| 621 <td class="historyValue"> | |
| 622 <template if="{{ result['value'] == null }}"> | |
| 623 <div style="color:#aaa;cursor:wait;"><pending></div> | |
| 624 </template> | |
| 625 <template if="{{ result['value'] != null }}"> | |
| 626 <instance-ref isolate="{{ isolate }}" ref="{{ result['value'] }}"> | |
| 627 </instance-ref> | |
| 628 </template> | |
| 629 </td> | |
| 630 </tr> | |
| 631 </tbody></table> | |
| 632 </template> | |
| 633 </template> | 742 </template> |
| 634 </polymer-element> | 743 |
| 635 | 744 </polymer-element><polymer-element name="field-view" extends="observatory-elemen
t"> |
| 636 | |
| 637 <polymer-element name="field-view" extends="observatory-element"> | |
| 638 <template> | 745 <template> |
| 639 <nav-bar> | 746 <nav-bar> |
| 640 <top-nav-menu></top-nav-menu> | 747 <top-nav-menu></top-nav-menu> |
| 641 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> | 748 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> |
| 642 <template if="{{ field['owner'].serviceType == 'Class' }}"> | 749 <template if="{{ field['owner'].serviceType == 'Class' }}"> |
| 643 <!-- TODO(turnidge): Add library nav menu here. --> | 750 <!-- TODO(turnidge): Add library nav menu here. --> |
| 644 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> | 751 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> |
| 645 </template> | 752 </template> |
| 646 <template if="{{ field['owner'].serviceType == 'Library' }}"> | 753 <template if="{{ field['owner'].serviceType == 'Library' }}"> |
| 647 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> | 754 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 760 </nav-bar> | 867 </nav-bar> |
| 761 <div class="row"> | 868 <div class="row"> |
| 762 <p style="text-align:center">{{ status }}</p> | 869 <p style="text-align:center">{{ status }}</p> |
| 763 </div> | 870 </div> |
| 764 <div class="row"> | 871 <div class="row"> |
| 765 <canvas id="fragmentation" width="1px" height="1px"></canvas> | 872 <canvas id="fragmentation" width="1px" height="1px"></canvas> |
| 766 </div> | 873 </div> |
| 767 </template> | 874 </template> |
| 768 | 875 |
| 769 </polymer-element> | 876 </polymer-element> |
| 770 <polymer-element name="script-ref" extends="service-ref"> | |
| 771 <template> | |
| 772 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> | |
| 773 </template> | |
| 774 | |
| 775 </polymer-element> | |
| 776 <polymer-element name="isolate-summary" extends="observatory-element"> | 877 <polymer-element name="isolate-summary" extends="observatory-element"> |
| 777 <template> | 878 <template> |
| 778 <div class="row"> | 879 <div class="row"> |
| 779 <div class="col-md-1"> | 880 <div class="col-md-1"> |
| 780 <img src="img/isolate_icon.png" class="img-polaroid"> | 881 <img src="img/isolate_icon.png" class="img-polaroid"> |
| 781 </div> | 882 </div> |
| 782 | 883 |
| 783 <div class="col-md-1">{{ isolate.vmName }}</div> | 884 <div class="col-md-1">{{ isolate.vmName }}</div> |
| 784 | 885 |
| 785 <!-- TODO(turnidge): Use function-ref when it can take isolate param --> | 886 <!-- TODO(turnidge): Use function-ref when it can take isolate param --> |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 894 </nav-bar> | 995 </nav-bar> |
| 895 | 996 |
| 896 <style> | 997 <style> |
| 897 .content { | 998 .content { |
| 898 padding-left: 10%; | 999 padding-left: 10%; |
| 899 font: 400 14px 'Montserrat', sans-serif; | 1000 font: 400 14px 'Montserrat', sans-serif; |
| 900 } | 1001 } |
| 901 h1 { | 1002 h1 { |
| 902 font: 400 18px 'Montserrat', sans-serif; | 1003 font: 400 18px 'Montserrat', sans-serif; |
| 903 } | 1004 } |
| 904 .member { | 1005 .memberList { |
| 1006 display: table; |
| 1007 } |
| 1008 .memberItem { |
| 1009 display: table-row; |
| 1010 } |
| 1011 .memberName, .memberValue { |
| 1012 display: table-cell; |
| 905 vertical-align: top; | 1013 vertical-align: top; |
| 906 padding: 3px 0 3px 1em; | 1014 padding: 3px 0 3px 1em; |
| 907 font: 400 14px 'Montserrat', sans-serif; | 1015 font: 400 14px 'Montserrat', sans-serif; |
| 908 } | |
| 909 .memberBold { | |
| 910 vertical-align: top; | |
| 911 padding: 3px 0 3px 1em; | |
| 912 font: 400 14px 'Montserrat', sans-serif; | |
| 913 } | 1016 } |
| 914 </style> | 1017 </style> |
| 915 | 1018 |
| 916 <template if="{{ instance['error'] != null }}"> | 1019 <template if="{{ instance['error'] != null }}"> |
| 917 <error-view error_obj="{{ instance['error'] }}"></error-view> | 1020 <error-view error_obj="{{ instance['error'] }}"></error-view> |
| 918 </template> | 1021 </template> |
| 919 | 1022 |
| 920 <template if="{{ instance['error'] == null }}"> | 1023 <template if="{{ instance['error'] == null }}"> |
| 921 <div class="content"> | 1024 <div class="content"> |
| 922 <!-- TODO(turnidge): Handle null instances. --> | 1025 <!-- TODO(turnidge): Handle null instances. --> |
| 923 <h1>instance of {{ instance['class']['user_name'] }}</h1> | 1026 <h1>instance of {{ instance['class']['user_name'] }}</h1> |
| 924 <table> | 1027 <div class="memberList"> |
| 925 <tbody><tr> | 1028 <div class="memberItem"> |
| 926 <td class="memberBold">class</td> | 1029 <div class="memberName">class</div> |
| 927 <td class="member"> | 1030 <div class="memberValue"> |
| 928 <class-ref ref="{{ instance['class'] }}"> | 1031 <class-ref ref="{{ instance['class'] }}"> |
| 929 </class-ref> | 1032 </class-ref> |
| 930 </td> | 1033 </div> |
| 931 </tr> | 1034 </div> |
| 932 <tr template="" if="{{ instance['preview'] != null }}"> | 1035 <template if="{{ instance['preview'] != null }}"> |
| 933 <td class="memberBold">preview</td> | 1036 <div class="memberItem"> |
| 934 <td class="member">{{ instance['preview'] }}</td> | 1037 <div class="memberName">preview</div> |
| 935 </tr> | 1038 <div class="memberValue">{{ instance['preview'] }}</div> |
| 936 <tr> | 1039 </div> |
| 937 <td class="memberBold">size</td> | 1040 </template> |
| 938 <td class="member">{{ instance['size'] | formatSize }}</td> | 1041 <div class="memberItem"> |
| 939 </tr> | 1042 <div class="memberName">size</div> |
| 940 </tbody></table> | 1043 <div class="memberValue">{{ instance['size'] | formatSize }}</div> |
| 1044 </div> |
| 1045 </div> |
| 941 </div> | 1046 </div> |
| 942 | 1047 |
| 943 <hr> | 1048 <hr> |
| 944 | 1049 |
| 945 <div class="content"> | 1050 <div class="content"> |
| 946 <template if="{{ instance['fields'].isNotEmpty }}"> | 1051 <template if="{{ instance['fields'].isNotEmpty }}"> |
| 947 fields ({{ instance['fields'].length }}) | 1052 fields ({{ instance['fields'].length }}) |
| 948 <curly-block> | 1053 <curly-block> |
| 949 <table> | 1054 <div class="memberList"> |
| 950 <tbody><tr template="" repeat="{{ field in instance['fields'] }}"> | 1055 <template repeat="{{ field in instance['fields'] }}"> |
| 951 <td class="member"> | 1056 <div class="memberItem"> |
| 952 <field-ref ref="{{ field['decl'] }}"></field-ref> | 1057 <div class="memberName"> |
| 953 </td> | 1058 <field-ref ref="{{ field['decl'] }}"></field-ref> |
| 954 <td class="member"> | 1059 </div> |
| 955 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 1060 <div class="memberValue"> |
| 956 </td> | 1061 <instance-ref ref="{{ field['value'] }}"></instance-ref> |
| 957 </tr> | 1062 </div> |
| 958 </tbody></table> | 1063 </div> |
| 1064 </template> |
| 1065 </div> |
| 959 </curly-block> | 1066 </curly-block> |
| 960 </template> | 1067 </template> |
| 961 | 1068 |
| 962 <template if="{{ instance['nativeFields'].isNotEmpty }}"> | 1069 <template if="{{ instance['nativeFields'].isNotEmpty }}"> |
| 963 native fields ({{ instance['nativeFields'].length }}) | 1070 native fields ({{ instance['nativeFields'].length }}) |
| 964 <curly-block> | 1071 <curly-block> |
| 965 <table> | 1072 <div class="memberList"> |
| 966 <tbody><tr template="" repeat="{{ field in instance['nativeFields'
] }}"> | 1073 <template repeat="{{ field in instance['nativeFields'] }}"> |
| 967 <td class="member">[{{ field['index']}}]</td> | 1074 <div class="memberItem"> |
| 968 <td class="member">[{{ field['value']}}]</td> | 1075 <div class="memberName">[{{ field['index']}}]</div> |
| 969 </tr> | 1076 <div class="memberValue">[{{ field['value']}}]</div> |
| 970 </tbody></table> | 1077 </div> |
| 971 </curly-block> | 1078 </template> |
| 1079 </div> |
| 1080 </curly-block><br> |
| 972 </template> | 1081 </template> |
| 973 | 1082 |
| 974 <template if="{{ instance['elements'].isNotEmpty }}"> | 1083 <template if="{{ instance['elements'].isNotEmpty }}"> |
| 975 elements ({{ instance['elements'].length }}) | 1084 elements ({{ instance['elements'].length }}) |
| 976 <curly-block> | 1085 <curly-block> |
| 977 <table> | 1086 <div class="memberList"> |
| 978 <tbody><tr template="" repeat="{{ element in instance['elements']
}}"> | 1087 <template repeat="{{ element in instance['elements'] }}"> |
| 979 <td class="member">[{{ element['index']}}]</td> | 1088 <div class="memberItem"> |
| 980 <td class="member"> | 1089 <div class="memberName">[{{ element['index']}}]</div> |
| 981 <instance-ref ref="{{ element['value'] }}"> | 1090 <div class="memberValue"> |
| 982 </instance-ref> | 1091 <instance-ref ref="{{ element['value'] }}"> |
| 983 </td> | 1092 </instance-ref> |
| 984 </tr> | 1093 </div> |
| 985 </tbody></table> | 1094 </div> |
| 986 </curly-block> | 1095 </template> |
| 1096 </div> |
| 1097 </curly-block><br> |
| 987 </template> | 1098 </template> |
| 988 </div> | 1099 </div> |
| 989 | 1100 |
| 990 <hr> | 1101 <hr> |
| 991 | 1102 |
| 992 <div class="content"> | 1103 <div class="content"> |
| 993 <eval-box callback="{{ eval }}"></eval-box> | 1104 <eval-box callback="{{ eval }}"></eval-box> |
| 994 </div> | 1105 </div> |
| 995 <br><br><br><br> | 1106 <br><br><br><br> |
| 996 <br><br><br><br> | 1107 <br><br><br><br> |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1023 <td><json-view json="{{value(key)}}"></json-view></td> | 1134 <td><json-view json="{{value(key)}}"></json-view></td> |
| 1024 </tr> | 1135 </tr> |
| 1025 </tbody> | 1136 </tbody> |
| 1026 </table> | 1137 </table> |
| 1027 </template> | 1138 </template> |
| 1028 </template> | 1139 </template> |
| 1029 | 1140 |
| 1030 </polymer-element> | 1141 </polymer-element> |
| 1031 <polymer-element name="library-view" extends="observatory-element"> | 1142 <polymer-element name="library-view" extends="observatory-element"> |
| 1032 <template> | 1143 <template> |
| 1144 <style> |
| 1145 .content { |
| 1146 padding-left: 10%; |
| 1147 font: 400 14px 'Montserrat', sans-serif; |
| 1148 } |
| 1149 h1 { |
| 1150 font: 400 18px 'Montserrat', sans-serif; |
| 1151 } |
| 1152 .memberList { |
| 1153 display: table; |
| 1154 } |
| 1155 .memberItem { |
| 1156 display: table-row; |
| 1157 } |
| 1158 .memberName, .memberValue { |
| 1159 display: table-cell; |
| 1160 vertical-align: top; |
| 1161 padding: 3px 0 3px 1em; |
| 1162 font: 400 14px 'Montserrat', sans-serif; |
| 1163 } |
| 1164 </style> |
| 1165 |
| 1033 <nav-bar> | 1166 <nav-bar> |
| 1034 <top-nav-menu></top-nav-menu> | 1167 <top-nav-menu></top-nav-menu> |
| 1035 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu> | 1168 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu> |
| 1036 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav-
menu> | 1169 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav-
menu> |
| 1037 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 1170 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 1038 </nav-bar> | 1171 </nav-bar> |
| 1039 | 1172 |
| 1040 <div class="alert alert-info">Scripts</div> | 1173 <div class="content"> |
| 1041 <table class="table table-hover"> | 1174 <h1> |
| 1042 <tbody> | 1175 <!-- TODO(turnidge): Handle unnamed libraries --> |
| 1043 <tr template="" repeat="{{ script in library['scripts']}}"> | 1176 library {{ library.name }} |
| 1044 <td> | 1177 </h1> |
| 1045 {{ script.kind }} | 1178 <div class="memberList"> |
| 1046 </td> | 1179 <div class="memberItem"> |
| 1047 <td> | 1180 <div class="memberName">url</div> |
| 1048 <script-ref ref="{{ script }}"></script-ref> | 1181 <div class="memberValue">{{ library['url'] }}</div> |
| 1049 </td> | 1182 </div> |
| 1050 </tr> | 1183 <template if="{{ library['imports'].length > 0 }}"> |
| 1051 </tbody> | 1184 <div class="memberItem"> |
| 1052 </table> | 1185 <div class="memberName">imports</div> |
| 1053 <div class="alert alert-info">Imported Libraries</div> | 1186 <div class="memberValue"> |
| 1054 <table class="table table-hover"> | 1187 <template repeat="{{ import in library['imports'] }}"> |
| 1055 <tbody> | 1188 <library-ref ref="{{ import }}"></library-ref> |
| 1056 <tr template="" repeat="{{ lib in library['libraries'] }}"> | 1189 </template> |
| 1057 <td> | 1190 </div> |
| 1058 <library-ref ref="{{ lib }}"></library-ref> | 1191 </div> |
| 1059 </td> | 1192 </template> |
| 1060 </tr> | 1193 <template if="{{ library.name != library.vmName }}"> |
| 1061 </tbody> | 1194 <div class="memberItem"> |
| 1062 </table> | 1195 <div class="memberName">vm name</div> |
| 1063 <div class="alert alert-info">Variables</div> | 1196 <div class="memberValue">{{ library.vmName }}</div> |
| 1064 <table class="table table-hover"> | 1197 </div> |
| 1065 <tbody> | 1198 </template> |
| 1066 <tr template="" repeat="{{ variable in library['variables'] }}"> | 1199 </div> |
| 1067 <td><field-ref ref="{{ variable }}"></field-ref></td> | 1200 </div> |
| 1068 <td><instance-ref ref="{{ variable['value'] }}"></instance-ref></td> | |
| 1069 </tr> | |
| 1070 </tbody> | |
| 1071 </table> | |
| 1072 <div class="alert alert-info">Functions</div> | |
| 1073 <table class="table table-hover"> | |
| 1074 <tbody> | |
| 1075 <tr template="" repeat="{{ func in library['functions'] }}"> | |
| 1076 <td> | |
| 1077 <function-ref ref="{{ func }}"></function-ref> | |
| 1078 </td> | |
| 1079 </tr> | |
| 1080 </tbody> | |
| 1081 </table> | |
| 1082 <div class="alert alert-info">Classes</div> | |
| 1083 <table class="table table-hover"> | |
| 1084 <thead> | |
| 1085 <tr> | |
| 1086 <th>Name</th> | |
| 1087 <th>Internal Name</th> | |
| 1088 </tr> | |
| 1089 </thead> | |
| 1090 <tbody> | |
| 1091 <tr template="" repeat="{{ cls in library['classes'] }}"> | |
| 1092 <td> | |
| 1093 <class-ref ref="{{ cls }}"></class-ref> | |
| 1094 </td> | |
| 1095 <td> | |
| 1096 <class-ref ref="{{ cls }}" internal=""></class-ref> | |
| 1097 </td> | |
| 1098 </tr> | |
| 1099 </tbody> | |
| 1100 </table> | |
| 1101 | 1201 |
| 1202 <hr> |
| 1203 |
| 1204 <div class="content"> |
| 1205 <template if="{{ library['scripts'].isNotEmpty }}"> |
| 1206 scripts ({{ library['scripts'].length }}) |
| 1207 <curly-block> |
| 1208 <div class="memberList"> |
| 1209 <template repeat="{{ script in library['scripts'] }}"> |
| 1210 <div class="memberItem"> |
| 1211 <div class="memberValue"> |
| 1212 <script-ref ref="{{ script }}"></script-ref> |
| 1213 </div> |
| 1214 </div> |
| 1215 </template> |
| 1216 </div> |
| 1217 </curly-block><br> |
| 1218 </template> |
| 1219 |
| 1220 <template if="{{ library['classes'].isNotEmpty }}"> |
| 1221 classes ({{ library['classes'].length }}) |
| 1222 <curly-block> |
| 1223 <div class="memberList"> |
| 1224 <template repeat="{{ cls in library['classes'] }}"> |
| 1225 <div class="memberItem"> |
| 1226 <div class="memberValue"> |
| 1227 <class-ref ref="{{ cls }}"></class-ref> |
| 1228 </div> |
| 1229 </div> |
| 1230 </template> |
| 1231 </div> |
| 1232 </curly-block><br> |
| 1233 </template> |
| 1234 |
| 1235 <template if="{{ library['variables'].isNotEmpty }}"> |
| 1236 variables ({{ library['variables'].length }}) |
| 1237 <curly-block> |
| 1238 <div class="memberList"> |
| 1239 <template repeat="{{ field in library['variables'] }}"> |
| 1240 <div class="memberItem"> |
| 1241 <div class="memberName"> |
| 1242 <field-ref ref="{{ field }}"></field-ref> |
| 1243 </div> |
| 1244 <div class="memberValue"> |
| 1245 <template if="{{ field['value'] != null }}"> |
| 1246 <instance-ref ref="{{ field['value'] }}"></instance-ref> |
| 1247 </template> |
| 1248 </div> |
| 1249 </div> |
| 1250 </template> |
| 1251 </div> |
| 1252 </curly-block><br> |
| 1253 </template> |
| 1254 |
| 1255 <template if="{{ library['functions'].isNotEmpty }}"> |
| 1256 functions ({{ library['functions'].length }}) |
| 1257 <curly-block> |
| 1258 <div class="memberList"> |
| 1259 <template repeat="{{ function in library['functions'] }}"> |
| 1260 <div class="memberItem"> |
| 1261 <div class="memberValue"> |
| 1262 <function-ref ref="{{ function }}"></function-ref> |
| 1263 </div> |
| 1264 </div> |
| 1265 </template> |
| 1266 </div> |
| 1267 </curly-block><br> |
| 1268 </template> |
| 1269 </div> |
| 1270 |
| 1271 <hr> |
| 1272 |
| 1273 <div class="content"> |
| 1274 <eval-box callback="{{ eval }}"></eval-box> |
| 1275 </div> |
| 1276 <br><br><br><br> |
| 1277 <br><br><br><br> |
| 1102 </template> | 1278 </template> |
| 1103 | 1279 |
| 1104 </polymer-element> | 1280 </polymer-element> |
| 1105 <polymer-element name="isolate-profile" extends="observatory-element"> | 1281 <polymer-element name="isolate-profile" extends="observatory-element"> |
| 1106 <template> | 1282 <template> |
| 1107 <nav-bar> | 1283 <nav-bar> |
| 1108 <top-nav-menu></top-nav-menu> | 1284 <top-nav-menu></top-nav-menu> |
| 1109 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> | 1285 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> |
| 1110 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu> | 1286 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu> |
| 1111 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 1287 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1245 </table> | 1421 </table> |
| 1246 </div> | 1422 </div> |
| 1247 </div> | 1423 </div> |
| 1248 </div> | 1424 </div> |
| 1249 </template> | 1425 </template> |
| 1250 | 1426 |
| 1251 </polymer-element> | 1427 </polymer-element> |
| 1252 <polymer-element name="stack-frame" extends="observatory-element"> | 1428 <polymer-element name="stack-frame" extends="observatory-element"> |
| 1253 <template> | 1429 <template> |
| 1254 <style> | 1430 <style> |
| 1255 .member { | 1431 .memberList { |
| 1432 display: table; |
| 1433 } |
| 1434 .memberItem { |
| 1435 display: table-row; |
| 1436 } |
| 1437 .memberName, .memberValue { |
| 1438 display: table-cell; |
| 1256 vertical-align: top; | 1439 vertical-align: top; |
| 1257 padding: 0 0 0 1em; | 1440 padding: 3px 0 3px 1em; |
| 1441 font: 400 14px 'Montserrat', sans-serif; |
| 1258 } | 1442 } |
| 1259 </style> | 1443 </style> |
| 1260 <div class="row"> | 1444 <div class="row"> |
| 1261 <div class="col-md-1"></div> | 1445 <div class="col-md-1"></div> |
| 1262 <div class="col-md-1"> | 1446 <div class="col-md-1"> |
| 1263 #{{ frame['depth'] }} | 1447 #{{ frame['depth'] }} |
| 1264 </div> | 1448 </div> |
| 1265 <div class="col-md-9"> | 1449 <div class="col-md-9"> |
| 1266 <function-ref ref="{{ frame['function'] }}"></function-ref> | 1450 <function-ref ref="{{ frame['function'] }}"></function-ref> |
| 1267 ( <script-ref ref="{{ frame['script'] }}" line="{{ frame['line'] }}"> | 1451 ( <script-ref ref="{{ frame['script'] }}" line="{{ frame['line'] }}"> |
| 1268 </script-ref> ) | 1452 </script-ref> ) |
| 1453 |
| 1269 <curly-block> | 1454 <curly-block> |
| 1270 <table> | 1455 <div class="memberList"> |
| 1271 <tbody><tr template="" repeat="{{ v in frame['vars'] }}"> | 1456 <template repeat="{{ v in frame['vars'] }}"> |
| 1272 <td class="member">{{ v['name']}}</td> | 1457 <div class="memberItem"> |
| 1273 <td class="member"> | 1458 <div class="memberName">{{ v['name']}}</div> |
| 1274 <instance-ref ref="{{ v['value'] }}"></instance-ref> | 1459 <div class="memberValue"> |
| 1275 </td> | 1460 <instance-ref ref="{{ v['value'] }}"></instance-ref> |
| 1276 </tr> | 1461 </div> |
| 1277 </tbody></table> | 1462 </div> |
| 1463 </template> |
| 1464 </div> |
| 1278 </curly-block> | 1465 </curly-block> |
| 1279 | 1466 |
| 1280 </div> | 1467 </div> |
| 1281 <div class="col-md-1"></div> | 1468 <div class="col-md-1"></div> |
| 1282 </div> | 1469 </div> |
| 1283 | 1470 |
| 1284 | 1471 |
| 1285 </template> | 1472 </template> |
| 1286 | 1473 |
| 1287 </polymer-element> | 1474 </polymer-element> |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1326 <template> | 1513 <template> |
| 1327 <response-viewer app="{{ app }}"></response-viewer> | 1514 <response-viewer app="{{ app }}"></response-viewer> |
| 1328 </template> | 1515 </template> |
| 1329 | 1516 |
| 1330 </polymer-element> | 1517 </polymer-element> |
| 1331 | 1518 |
| 1332 | 1519 |
| 1333 <observatory-application></observatory-application> | 1520 <observatory-application></observatory-application> |
| 1334 | 1521 |
| 1335 </body></html> | 1522 </body></html> |
| OLD | NEW |