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