OLD | NEW |
1 <!DOCTYPE html><html><head> | 1 <!DOCTYPE html><html><head> |
2 <title>Dart VM Observatory</title> | 2 <title>Dart VM Observatory</title> |
3 <meta charset="utf-8"> | 3 <meta charset="utf-8"> |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | 10 |
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 background-color: #f5f5f5; | 914 background-color: #f5f5f5; |
915 border: 1px solid #ccc; | 915 border: 1px solid #ccc; |
916 padding: 10px; | 916 padding: 10px; |
917 font-family: consolas, courier, monospace; | 917 font-family: consolas, courier, monospace; |
918 font-size: 1em; | 918 font-size: 1em; |
919 line-height: 1.2em; | 919 line-height: 1.2em; |
920 white-space: pre; | 920 white-space: pre; |
921 } | 921 } |
922 </style> | 922 </style> |
923 <span> | 923 <span> |
924 <template if="{{ isError(ref) }}"> | 924 <template if="{{ ref.isSentinel }}"> |
925 <pre class="errorBox">{{ ref.message }}</pre> | 925 <div title="{{ hoverText }}">{{ ref.valueAsString }}</div> |
926 </template> | 926 </template> |
927 | 927 |
928 <template if="{{ isUnexpected(ref) }}"> | 928 <template if="{{ ref.isString || ref.isBool || ref.isInt || ref.isDouble |
| ref.isNull }}"> |
929 unexpected reference type <{{ ref.serviceType }}> | 929 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.valueAsString }}</a> |
930 </template> | 930 </template> |
931 | 931 |
932 <template if="{{ isSentinel(ref) }}"> | 932 <template if="{{ ref.isType }}"> |
933 <div title="{{ hoverText }}">{{ ref['valueAsString'] }}</div> | 933 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a> |
934 </template> | 934 </template> |
935 | 935 |
936 <template if="{{ (isString(ref) || | 936 <template if="{{ ref.isClosure }}"> |
937 isBool(ref) || | |
938 isNull(ref) || | |
939 isInt(ref)) || | |
940 isDouble(ref)) }}"> | |
941 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref['valueAsString'] }}</a
> | |
942 </template> | |
943 | |
944 <template if="{{ (isType(ref)) }}"> | |
945 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref['user_name'] }}</a> | |
946 </template> | |
947 | |
948 <template if="{{ isInstance(ref) && | |
949 ref['closureFunc'] != null}}"> | |
950 <a on-click="{{ goto }}" _href="{{ url }}"> | 937 <a on-click="{{ goto }}" _href="{{ url }}"> |
951 <!-- TODO(turnidge): Switch this to fully-qualified function --> | 938 <!-- TODO(turnidge): Switch this to fully-qualified function --> |
952 {{ ref['closureFunc'].name }} | 939 {{ ref.closureFunc.name }} |
953 </a> | 940 </a> |
954 </template> | 941 </template> |
955 | 942 |
956 <template if="{{ isInstance(ref) && | 943 <template if="{{ ref.isInstance && !ref.isClosure }}"> |
957 ref['closureFunc'] == null}}"> | 944 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em>
</a> |
958 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref['class'].name }}</
em></a> | |
959 <curly-block callback="{{ expander() }}"> | 945 <curly-block callback="{{ expander() }}"> |
960 <div class="memberList"> | 946 <div class="memberList"> |
961 <template repeat="{{ field in ref['fields'] }}"> | 947 <template repeat="{{ field in ref.fields }}"> |
962 <div class="memberItem"> | 948 <div class="memberItem"> |
963 <div class="memberName"> | 949 <div class="memberName"> |
964 {{ field['decl']['user_name'] }} | 950 {{ field['decl']['user_name'] }} |
965 </div> | 951 </div> |
966 <div class="memberValue"> | 952 <div class="memberValue"> |
967 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 953 <any-service-ref ref="{{ field['value'] }}"></any-service-ref> |
968 </div> | 954 </div> |
969 </div> | 955 </div> |
970 </template> | 956 </template> |
971 </div> | 957 </div> |
972 </curly-block> | 958 </curly-block> |
973 </template> | 959 </template> |
974 | 960 |
975 <template if="{{ isList(ref) }}"> | 961 <template if="{{ ref.isList }}"> |
976 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref['class'].name }}</
em> ({{ ref['length']}})</a> | 962 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em>
({{ ref.length }})</a> |
977 <curly-block callback="{{ expander() }}"> | 963 <curly-block callback="{{ expander() }}"> |
978 <div class="memberList"> | 964 <div class="memberList"> |
979 <template repeat="{{ element in ref['elements'] }}"> | 965 <template repeat="{{ element in ref.elements }}"> |
980 <div class="memberItem"> | 966 <div class="memberItem"> |
981 <div class="memberName">[{{ element['index']}}]</div> | 967 <div class="memberName">[{{ element['index']}}]</div> |
982 <div class="memberValue"> | 968 <div class="memberValue"> |
983 <instance-ref ref="{{ element['value'] }}"></instance-ref> | 969 <any-service-ref ref="{{ element['value'] }}"> |
984 </div> | 970 </any-service-ref></div> |
985 </div> | 971 </div> |
986 </template> | 972 </template> |
987 </div> | 973 </div> |
988 </curly-block> | 974 </curly-block> |
989 </template> | 975 </template> |
990 </span> | 976 </span> |
991 </template> | 977 </template> |
992 </polymer-element> | 978 </polymer-element> |
993 | 979 |
994 | 980 |
(...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2549 | 2535 |
2550 | 2536 |
2551 | 2537 |
2552 | 2538 |
2553 | 2539 |
2554 | 2540 |
2555 | 2541 |
2556 | 2542 |
2557 | 2543 |
2558 | 2544 |
| 2545 |
| 2546 |
| 2547 |
| 2548 |
| 2549 |
| 2550 |
| 2551 <polymer-element name="error-ref" extends="service-ref"> |
| 2552 <template> |
| 2553 <style> |
| 2554 /* Global styles */ |
| 2555 * { |
| 2556 margin: 0; |
| 2557 padding: 0; |
| 2558 font: 400 14px 'Montserrat', sans-serif; |
| 2559 color: #333; |
| 2560 box-sizing: border-box; |
| 2561 } |
| 2562 |
| 2563 .content { |
| 2564 padding-left: 10%; |
| 2565 font: 400 14px 'Montserrat', sans-serif; |
| 2566 } |
| 2567 |
| 2568 .content-centered { |
| 2569 padding-left: 10%; |
| 2570 padding-right: 10%; |
| 2571 font: 400 14px 'Montserrat', sans-serif; |
| 2572 } |
| 2573 |
| 2574 .content-centered-big { |
| 2575 padding-left: 5%; |
| 2576 padding-right: 5%; |
| 2577 font: 400 14px 'Montserrat', sans-serif; |
| 2578 } |
| 2579 |
| 2580 h1 { |
| 2581 font: 400 18px 'Montserrat', sans-serif; |
| 2582 } |
| 2583 |
| 2584 .memberList { |
| 2585 display: table; |
| 2586 } |
| 2587 |
| 2588 .memberItem { |
| 2589 display: table-row; |
| 2590 } |
| 2591 |
| 2592 .memberName, .memberValue { |
| 2593 display: table-cell; |
| 2594 vertical-align: top; |
| 2595 padding: 3px 0 3px 1em; |
| 2596 font: 400 14px 'Montserrat', sans-serif; |
| 2597 } |
| 2598 |
| 2599 .memberSmall { |
| 2600 display: table-cell; |
| 2601 vertical-align: top; |
| 2602 padding: 3px 0 3px 1em; |
| 2603 font: 400 12px 'Montserrat', sans-serif; |
| 2604 } |
| 2605 |
| 2606 .monospace { |
| 2607 font-family: consolas, courier, monospace; |
| 2608 font-size: 1em; |
| 2609 line-height: 1.2em; |
| 2610 white-space: nowrap; |
| 2611 } |
| 2612 |
| 2613 a { |
| 2614 color: #0489c3; |
| 2615 text-decoration: none; |
| 2616 } |
| 2617 |
| 2618 a:hover { |
| 2619 text-decoration: underline; |
| 2620 } |
| 2621 |
| 2622 em { |
| 2623 color: inherit; |
| 2624 font-style: italic; |
| 2625 } |
| 2626 |
| 2627 b { |
| 2628 color: inherit; |
| 2629 font-weight: bold; |
| 2630 } |
| 2631 |
| 2632 hr { |
| 2633 margin-top: 20px; |
| 2634 margin-bottom: 20px; |
| 2635 border: 0; |
| 2636 border-top: 1px solid #eee; |
| 2637 height: 0; |
| 2638 box-sizing: content-box; |
| 2639 } |
| 2640 |
| 2641 .list-group { |
| 2642 padding-left: 0; |
| 2643 margin-bottom: 20px; |
| 2644 } |
| 2645 |
| 2646 .list-group-item { |
| 2647 position: relative; |
| 2648 display: block; |
| 2649 padding: 10px 15px; |
| 2650 margin-bottom: -1px; |
| 2651 background-color: #fff; |
| 2652 } |
| 2653 |
| 2654 .list-group-item:first-child { |
| 2655 /* rounded top corners */ |
| 2656 border-top-right-radius:4px; |
| 2657 border-top-left-radius:4px; |
| 2658 } |
| 2659 |
| 2660 .list-group-item:last-child { |
| 2661 margin-bottom: 0; |
| 2662 /* rounded bottom corners */ |
| 2663 border-bottom-right-radius: 4px; |
| 2664 border-bottom-left-radius:4px; |
| 2665 } |
| 2666 |
| 2667 /* Flex row container */ |
| 2668 .flex-row { |
| 2669 display: flex; |
| 2670 flex-direction: row; |
| 2671 } |
| 2672 |
| 2673 /* Flex column container */ |
| 2674 .flex-column { |
| 2675 display: flex; |
| 2676 flex-direction: column; |
| 2677 } |
| 2678 |
| 2679 .flex-item-fit { |
| 2680 flex-grow: 1; |
| 2681 flex-shrink: 1; |
| 2682 flex-basis: auto; |
| 2683 } |
| 2684 |
| 2685 .flex-item-no-shrink { |
| 2686 flex-grow: 0; |
| 2687 flex-shrink: 0; |
| 2688 flex-basis: auto; |
| 2689 } |
| 2690 |
| 2691 .flex-item-fill { |
| 2692 flex-grow: 0; |
| 2693 flex-shrink: 1; /* shrink when pressured */ |
| 2694 flex-basis: 100%; /* try and take 100% */ |
| 2695 } |
| 2696 |
| 2697 .flex-item-fixed-1-12 { |
| 2698 flex-grow: 0; |
| 2699 flex-shrink: 0; |
| 2700 flex-basis: 8.3%; |
| 2701 } |
| 2702 |
| 2703 .flex-item-fixed-2-12 { |
| 2704 flex-grow: 0; |
| 2705 flex-shrink: 0; |
| 2706 flex-basis: 16.6%; |
| 2707 } |
| 2708 |
| 2709 .flex-item-fixed-4-12 { |
| 2710 flex-grow: 0; |
| 2711 flex-shrink: 0; |
| 2712 flex-basis: 33.3333%; |
| 2713 } |
| 2714 |
| 2715 .flex-item-fixed-6-12, .flex-item-50-percent { |
| 2716 flex-grow: 0; |
| 2717 flex-shrink: 0; |
| 2718 flex-basis: 50%; |
| 2719 } |
| 2720 |
| 2721 .flex-item-fixed-8-12 { |
| 2722 flex-grow: 0; |
| 2723 flex-shrink: 0; |
| 2724 flex-basis: 66.6666%; |
| 2725 } |
| 2726 |
| 2727 .flex-item-fixed-9-12 { |
| 2728 flex-grow: 0; |
| 2729 flex-shrink: 0; |
| 2730 flex-basis: 75%; |
| 2731 } |
| 2732 |
| 2733 |
| 2734 .flex-item-fixed-12-12 { |
| 2735 flex-grow: 0; |
| 2736 flex-shrink: 0; |
| 2737 flex-basis: 100%; |
| 2738 } |
| 2739 |
| 2740 .flex-item-10-percent { |
| 2741 flex-grow: 0; |
| 2742 flex-shrink: 0; |
| 2743 flex-basis: 10%; |
| 2744 } |
| 2745 |
| 2746 .flex-item-15-percent { |
| 2747 flex-grow: 0; |
| 2748 flex-shrink: 0; |
| 2749 flex-basis: 15%; |
| 2750 } |
| 2751 |
| 2752 .flex-item-20-percent { |
| 2753 flex-grow: 0; |
| 2754 flex-shrink: 0; |
| 2755 flex-basis: 20%; |
| 2756 } |
| 2757 |
| 2758 .flex-item-30-percent { |
| 2759 flex-grow: 0; |
| 2760 flex-shrink: 0; |
| 2761 flex-basis: 30%; |
| 2762 } |
| 2763 |
| 2764 .flex-item-40-percent { |
| 2765 flex-grow: 0; |
| 2766 flex-shrink: 0; |
| 2767 flex-basis: 40%; |
| 2768 } |
| 2769 |
| 2770 .flex-item-50-percent { |
| 2771 flex-grow: 0; |
| 2772 flex-shrink: 0; |
| 2773 flex-basis: 50%; |
| 2774 } |
| 2775 |
| 2776 .flex-item-60-percent { |
| 2777 flex-grow: 0; |
| 2778 flex-shrink: 0; |
| 2779 flex-basis: 60%; |
| 2780 } |
| 2781 |
| 2782 .flex-item-70-percent { |
| 2783 flex-grow: 0; |
| 2784 flex-shrink: 0; |
| 2785 flex-basis: 70%; |
| 2786 } |
| 2787 |
| 2788 .flex-item-80-percent { |
| 2789 flex-grow: 0; |
| 2790 flex-shrink: 0; |
| 2791 flex-basis: 80%; |
| 2792 } |
| 2793 |
| 2794 .well { |
| 2795 min-height: 20px; |
| 2796 padding: 19px; |
| 2797 margin-bottom: 20px; |
| 2798 background-color: #f5f5f5; |
| 2799 border: 1px solid #e3e3e3; |
| 2800 border-radius: 4px; |
| 2801 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); |
| 2802 } |
| 2803 |
| 2804 .break-wrap { |
| 2805 word-wrap: break-word; |
| 2806 } |
| 2807 </style> |
| 2808 <style> |
| 2809 .errorBox { |
| 2810 background-color: #f5f5f5; |
| 2811 border: 1px solid #ccc; |
| 2812 padding: 10px; |
| 2813 font-family: consolas, courier, monospace; |
| 2814 font-size: 1em; |
| 2815 line-height: 1.2em; |
| 2816 white-space: pre; |
| 2817 } |
| 2818 </style> |
| 2819 <span> |
| 2820 <pre class="errorBox">{{ ref.kind }}: {{ ref.message }}</pre> |
| 2821 </span> |
| 2822 </template> |
| 2823 </polymer-element> |
| 2824 |
2559 <polymer-element name="eval-box" extends="observatory-element"> | 2825 <polymer-element name="eval-box" extends="observatory-element"> |
2560 <template> | 2826 <template> |
2561 <style> | 2827 <style> |
2562 .textbox { | 2828 .textbox { |
2563 width: 80ex; | 2829 width: 80ex; |
2564 font: 400 16px 'Montserrat', sans-serif; | 2830 font: 400 16px 'Montserrat', sans-serif; |
2565 } | 2831 } |
2566 .bigtextbox { | 2832 .bigtextbox { |
2567 font: 400 16px 'Montserrat', sans-serif; | 2833 font: 400 16px 'Montserrat', sans-serif; |
2568 } | 2834 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2619 <table> | 2885 <table> |
2620 <tbody><tr template="" repeat="{{ result in results }}"> | 2886 <tbody><tr template="" repeat="{{ result in results }}"> |
2621 <td class="historyExpr"> | 2887 <td class="historyExpr"> |
2622 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr']
}}">{{ result['expr'] }}</a> | 2888 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr']
}}">{{ result['expr'] }}</a> |
2623 </td> | 2889 </td> |
2624 <td class="historyValue"> | 2890 <td class="historyValue"> |
2625 <template if="{{ result['value'] == null }}"> | 2891 <template if="{{ result['value'] == null }}"> |
2626 <div style="color:#aaa;cursor:wait;"><pending></div> | 2892 <div style="color:#aaa;cursor:wait;"><pending></div> |
2627 </template> | 2893 </template> |
2628 <template if="{{ result['value'] != null }}"> | 2894 <template if="{{ result['value'] != null }}"> |
2629 <instance-ref ref="{{ result['value'] }}"></instance-ref> | 2895 <any-service-ref ref="{{ result['value'] }}"></any-service-ref> |
2630 </template> | 2896 </template> |
2631 </td> | 2897 </td> |
2632 </tr> | 2898 </tr> |
2633 </tbody></table> | 2899 </tbody></table> |
2634 </template> | 2900 </template> |
2635 </template> | 2901 </template> |
2636 </polymer-element> | 2902 </polymer-element> |
2637 | 2903 |
2638 | 2904 |
2639 | 2905 |
2640 | 2906 |
2641 | 2907 |
| 2908 |
2642 <polymer-element name="eval-link"> | 2909 <polymer-element name="eval-link"> |
2643 <template> | 2910 <template> |
2644 <style> | 2911 <style> |
2645 .idle { | 2912 .idle { |
2646 color: #0489c3; | 2913 color: #0489c3; |
2647 cursor: pointer; | 2914 cursor: pointer; |
2648 } | 2915 } |
2649 .busy { | 2916 .busy { |
2650 color: #aaa; | 2917 color: #aaa; |
2651 cursor: wait; | 2918 cursor: wait; |
2652 } | 2919 } |
2653 </style> | 2920 </style> |
2654 | 2921 |
2655 <template if="{{ busy }}"> | 2922 <template if="{{ busy }}"> |
2656 <span class="busy">{{ label }}</span> | 2923 <span class="busy">{{ label }}</span> |
2657 </template> | 2924 </template> |
2658 <template if="{{ !busy }}"> | 2925 <template if="{{ !busy }}"> |
2659 <span class="idle"><a on-click="{{ evalNow }}">{{ label }}</a></span> | 2926 <span class="idle"><a on-click="{{ evalNow }}">{{ label }}</a></span> |
2660 </template> | 2927 </template> |
2661 <template if="{{ result != null }}"> | 2928 <template if="{{ result != null }}"> |
2662 = <instance-ref ref="{{ result }}"></instance-ref> | 2929 = <any-service-ref ref="{{ result }}"></any-service-ref> |
2663 </template> | 2930 </template> |
2664 </template> | 2931 </template> |
2665 </polymer-element> | 2932 </polymer-element> |
2666 | 2933 |
2667 | 2934 |
2668 | 2935 |
2669 | 2936 |
2670 | 2937 |
2671 | 2938 |
2672 | 2939 |
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4228 <template if="{{ cls.name != cls.vmName }}"> | 4495 <template if="{{ cls.name != cls.vmName }}"> |
4229 <div class="memberItem"> | 4496 <div class="memberItem"> |
4230 <div class="memberName">vm name</div> | 4497 <div class="memberName">vm name</div> |
4231 <div class="memberValue">{{ cls.vmName }}</div> | 4498 <div class="memberValue">{{ cls.vmName }}</div> |
4232 </div> | 4499 </div> |
4233 </template> | 4500 </template> |
4234 </div> | 4501 </div> |
4235 </div> | 4502 </div> |
4236 | 4503 |
4237 <template if="{{ cls.error != null }}"> | 4504 <template if="{{ cls.error != null }}"> |
4238 <!-- TODO(turnidge): Don't use instance-ref for error display here --> | 4505 <error-ref ref="{{ cls.error }}"> |
4239 <instance-ref ref="{{ cls.error }}"></instance-ref> | 4506 </error-ref></template> |
4240 </template> | |
4241 | 4507 |
4242 <hr> | 4508 <hr> |
4243 | 4509 |
4244 <div class="content"> | 4510 <div class="content"> |
4245 <template if="{{ cls.fields.isNotEmpty }}"> | 4511 <template if="{{ cls.fields.isNotEmpty }}"> |
4246 fields ({{ cls.fields.length }}) | 4512 fields ({{ cls.fields.length }}) |
4247 <curly-block expand="{{ cls.fields.length <= 8 }}"> | 4513 <curly-block expand="{{ cls.fields.length <= 8 }}"> |
4248 <div class="memberList"> | 4514 <div class="memberList"> |
4249 <template repeat="{{ field in cls.fields }}"> | 4515 <template repeat="{{ field in cls.fields }}"> |
4250 <div class="memberItem"> | 4516 <div class="memberItem"> |
4251 <div class="memberName"> | 4517 <div class="memberName"> |
4252 <field-ref ref="{{ field }}"></field-ref> | 4518 <field-ref ref="{{ field }}"></field-ref> |
4253 </div> | 4519 </div> |
4254 <div class="memberValue"> | 4520 <div class="memberValue"> |
4255 <template if="{{ field['value'] != null }}"> | 4521 <template if="{{ field['value'] != null }}"> |
4256 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 4522 <any-service-ref ref="{{ field['value'] }}"></any-service-re
f> |
4257 </template> | 4523 </template> |
4258 </div> | 4524 </div> |
4259 </div> | 4525 </div> |
4260 </template> | 4526 </template> |
4261 </div> | 4527 </div> |
4262 </curly-block><br><br> | 4528 </curly-block><br><br> |
4263 </template> | 4529 </template> |
4264 | 4530 |
4265 <template if="{{ cls.functions.isNotEmpty }}"> | 4531 <template if="{{ cls.functions.isNotEmpty }}"> |
4266 functions ({{ cls.functions.length }}) | 4532 functions ({{ cls.functions.length }}) |
(...skipping 22 matching lines...) Expand all Loading... |
4289 </div> | 4555 </div> |
4290 <div class="memberItem"> | 4556 <div class="memberItem"> |
4291 <div class="memberName">strongly reachable</div> | 4557 <div class="memberName">strongly reachable</div> |
4292 <div class="memberValue"> | 4558 <div class="memberValue"> |
4293 <template if="{{ instances == null }}"> | 4559 <template if="{{ instances == null }}"> |
4294 <eval-link callback="{{ reachable }}" label="[find]" expr="100"> | 4560 <eval-link callback="{{ reachable }}" label="[find]" expr="100"> |
4295 </eval-link> | 4561 </eval-link> |
4296 </template> | 4562 </template> |
4297 <template if="{{ instances != null }}"> | 4563 <template if="{{ instances != null }}"> |
4298 sample | 4564 sample |
4299 <instance-ref ref="{{ instances['sample'] }}"></instance-ref> | 4565 <any-service-ref ref="{{ instances['sample'] }}"></any-service-r
ef> |
4300 <template if="{{ instances['totalCount'] > instances['sampleCoun
t'] }}"> | 4566 <template if="{{ instances['totalCount'] > instances['sampleCoun
t'] }}"> |
4301 <eval-link callback="{{ reachable }}" label="[more]" expr="{{
instances['sampleCount'] * 2 }}"> | 4567 <eval-link callback="{{ reachable }}" label="[more]" expr="{{
instances['sampleCount'] * 2 }}"> |
4302 </eval-link> | 4568 </eval-link> |
4303 </template> | 4569 </template> |
4304 of total {{ instances['totalCount'] }} | 4570 of total {{ instances['totalCount'] }} |
4305 </template> | 4571 </template> |
4306 </div> | 4572 </div> |
4307 </div> | 4573 </div> |
4308 <div class="memberItem"> | 4574 <div class="memberItem"> |
4309 <div class="memberName">retained size</div> | 4575 <div class="memberName">retained size</div> |
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4956 <div class="memberName">Inclusive</div> | 5222 <div class="memberName">Inclusive</div> |
4957 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div> | 5223 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div> |
4958 </div> | 5224 </div> |
4959 <div class="memberItem"> | 5225 <div class="memberItem"> |
4960 <div class="memberName">Exclusive</div> | 5226 <div class="memberName">Exclusive</div> |
4961 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div> | 5227 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div> |
4962 </div> | 5228 </div> |
4963 <div class="memberItem"> | 5229 <div class="memberItem"> |
4964 <div class="memberName">Constant object pool</div> | 5230 <div class="memberName">Constant object pool</div> |
4965 <div class="memberValue"> | 5231 <div class="memberValue"> |
4966 <instance-ref ref="{{ code.objectPool }}"></instance-ref> | 5232 <any-service-ref ref="{{ code.objectPool }}"></any-service-ref> |
4967 </div> | 5233 </div> |
4968 </div> | 5234 </div> |
4969 </div> | 5235 </div> |
4970 </div> | 5236 </div> |
4971 <hr> | 5237 <hr> |
4972 <div class="content"> | 5238 <div class="content"> |
4973 <template if="{{ code.hasDisassembly }}"> | 5239 <template if="{{ code.hasDisassembly }}"> |
4974 <div class="flex-row"> | 5240 <div class="flex-row"> |
4975 <div class="flex-item-fixed-2-12 memberHeader">Inclusive</div> | 5241 <div class="flex-item-fixed-2-12 memberHeader">Inclusive</div> |
4976 <div class="flex-item-fixed-2-12 memberHeader">Exclusive</div> | 5242 <div class="flex-item-fixed-2-12 memberHeader">Exclusive</div> |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5640 — null not observed | 5906 — null not observed |
5641 </template> | 5907 </template> |
5642 </template> | 5908 </template> |
5643 </div> | 5909 </div> |
5644 </div> | 5910 </div> |
5645 </template> | 5911 </template> |
5646 <template if="{{ field['value'] != null }}"> | 5912 <template if="{{ field['value'] != null }}"> |
5647 <div class="memberItem"> | 5913 <div class="memberItem"> |
5648 <div class="memberName">static value</div> | 5914 <div class="memberName">static value</div> |
5649 <div class="memberValue"> | 5915 <div class="memberValue"> |
5650 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 5916 <any-service-ref ref="{{ field['value'] }}"></any-service-ref> |
5651 </div> | 5917 </div> |
5652 </div> | 5918 </div> |
5653 </template> | 5919 </template> |
5654 </div> | 5920 </div> |
5655 </div> | 5921 </div> |
5656 </template> | 5922 </template> |
5657 </polymer-element> | 5923 </polymer-element> |
5658 | 5924 |
5659 | 5925 |
5660 | 5926 |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5936 <function-ref ref="{{ frame['function'] }}"></function-ref> | 6202 <function-ref ref="{{ frame['function'] }}"></function-ref> |
5937 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }}
"> | 6203 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }}
"> |
5938 </script-ref> ) | 6204 </script-ref> ) |
5939 | 6205 |
5940 <curly-block> | 6206 <curly-block> |
5941 <div class="memberList"> | 6207 <div class="memberList"> |
5942 <template repeat="{{ v in frame['vars'] }}"> | 6208 <template repeat="{{ v in frame['vars'] }}"> |
5943 <div class="memberItem"> | 6209 <div class="memberItem"> |
5944 <div class="memberName">{{ v['name']}}</div> | 6210 <div class="memberName">{{ v['name']}}</div> |
5945 <div class="memberValue"> | 6211 <div class="memberValue"> |
5946 <instance-ref ref="{{ v['value'] }}"></instance-ref> | 6212 <any-service-ref ref="{{ v['value'] }}"></any-service-ref> |
5947 </div> | 6213 </div> |
5948 </div> | 6214 </div> |
5949 </template> | 6215 </template> |
5950 </div> | 6216 </div> |
5951 </curly-block> | 6217 </curly-block> |
5952 </div> | 6218 </div> |
5953 <div class="flex-item-fixed-1-12"> | 6219 <div class="flex-item-fixed-1-12"> |
5954 </div> | 6220 </div> |
5955 </div> | 6221 </div> |
5956 </template> | 6222 </template> |
(...skipping 8563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14520 } | 14786 } |
14521 | 14787 |
14522 .break-wrap { | 14788 .break-wrap { |
14523 word-wrap: break-word; | 14789 word-wrap: break-word; |
14524 } | 14790 } |
14525 </style> | 14791 </style> |
14526 <nav-bar> | 14792 <nav-bar> |
14527 <top-nav-menu></top-nav-menu> | 14793 <top-nav-menu></top-nav-menu> |
14528 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> | 14794 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> |
14529 <!-- TODO(turnidge): Add library nav menu here. --> | 14795 <!-- TODO(turnidge): Add library nav menu here. --> |
14530 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu> | 14796 <class-nav-menu cls="{{ instance.clazz }}"></class-nav-menu> |
14531 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> | 14797 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> |
14532 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 14798 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
14533 <nav-control></nav-control> | 14799 <nav-control></nav-control> |
14534 </nav-bar> | 14800 </nav-bar> |
14535 | 14801 |
14536 <template if="{{ instance['error'] != null }}"> | 14802 <template if="{{ instance.isError }}"> |
14537 <error-view error_obj="{{ instance['error'] }}"></error-view> | 14803 <error-view error_obj="{{ instance['error'] }}"></error-view> |
14538 </template> | 14804 </template> |
14539 | 14805 |
14540 <template if="{{ instance['error'] == null }}"> | 14806 <template if="{{ !instance.isError }}"> |
14541 <div class="content"> | 14807 <div class="content"> |
14542 <!-- TODO(turnidge): Handle null instances. --> | 14808 <template if="{{ instance.isType }}"> |
14543 <template if="{{ isType(instance) }}"> | |
14544 <h1>type {{ instance.name }}</h1> | 14809 <h1>type {{ instance.name }}</h1> |
14545 </template> | 14810 </template> |
14546 <template if="{{ !isType(instance) }}"> | 14811 <template if="{{ !instance.isType }}"> |
14547 <h1>instance of {{ instance['class'].name }}</h1> | 14812 <h1>instance of {{ instance.clazz.name }}</h1> |
14548 </template> | 14813 </template> |
14549 <div class="memberList"> | 14814 <div class="memberList"> |
14550 <div class="memberItem"> | 14815 <div class="memberItem"> |
14551 <div class="memberName">class</div> | 14816 <div class="memberName">class</div> |
14552 <div class="memberValue"> | 14817 <div class="memberValue"> |
14553 <class-ref ref="{{ instance['class'] }}"> | 14818 <class-ref ref="{{ instance.clazz }}"> |
14554 </class-ref> | 14819 </class-ref> |
14555 </div> | 14820 </div> |
14556 </div> | 14821 </div> |
14557 <template if="{{ instance['valueAsString'] != null }}"> | 14822 <template if="{{ instance.valueAsString != null }}"> |
14558 <div class="memberItem"> | 14823 <div class="memberItem"> |
14559 <div class="memberName">value</div> | 14824 <div class="memberName">value</div> |
14560 <div class="memberValue">{{ instance['valueAsString'] }}</div> | 14825 <div class="memberValue">{{ instance.valueAsString }}</div> |
14561 </div> | 14826 </div> |
14562 </template> | 14827 </template> |
14563 <div class="memberItem"> | 14828 <div class="memberItem" title="Space for this object in memory"> |
14564 <div class="memberName">size</div> | 14829 <div class="memberName">size</div> |
14565 <div class="memberValue">{{ instance['size'] | formatSize }}</div> | 14830 <div class="memberValue">{{ instance.size | formatSize }}</div> |
14566 </div> | 14831 </div> |
14567 <div class="memberItem"> | 14832 <div class="memberItem" title="Space that would be reclaimed if refere
nces to this object were replaced with null"> |
14568 <div class="memberName">retained size</div> | 14833 <div class="memberName">retained size</div> |
14569 <div class="memberValue"> | 14834 <div class="memberValue"> |
14570 <template if="{{ retainedBytes == null }}"> | 14835 <template if="{{ retainedBytes == null }}"> |
14571 <eval-link callback="{{ retainedSize }}" label="[calculate]"> | 14836 <eval-link callback="{{ retainedSize }}" label="[calculate]"> |
14572 </eval-link> | 14837 </eval-link> |
14573 </template> | 14838 </template> |
14574 <template if="{{ retainedBytes != null }}"> | 14839 <template if="{{ retainedBytes != null }}"> |
14575 {{ retainedBytes | formatSize }} | 14840 {{ retainedBytes | formatSize }} |
14576 </template> | 14841 </template> |
14577 </div> | 14842 </div> |
(...skipping 21 matching lines...) Expand all Loading... |
14599 </div> | 14864 </div> |
14600 </template> | 14865 </template> |
14601 <template if="{{ path['length'] > path['elements'].length }}"> | 14866 <template if="{{ path['length'] > path['elements'].length }}"> |
14602 showing {{ path['elements'].length }} of {{ path['length'] }} | 14867 showing {{ path['elements'].length }} of {{ path['length'] }} |
14603 <eval-link callback="{{ retainingPath }}" label="[find more]"
expr="{{ path['elements'].length * 2 }}"> | 14868 <eval-link callback="{{ retainingPath }}" label="[find more]"
expr="{{ path['elements'].length * 2 }}"> |
14604 </eval-link> | 14869 </eval-link> |
14605 </template> | 14870 </template> |
14606 </template> | 14871 </template> |
14607 </div> | 14872 </div> |
14608 </div> | 14873 </div> |
14609 <div class="memberItem"> | 14874 <div class="memberItem" title="Objects which directly reference this o
bject"> |
14610 <div class="memberName">inbound references</div> | 14875 <div class="memberName">inbound references</div> |
14611 <div class="memberValue"> | 14876 <div class="memberValue"> |
14612 <template if="{{ inboundReferences == null }}"> | 14877 <template if="{{ inboundReferences == null }}"> |
14613 <eval-link callback="{{ fetchInboundReferences }}" label="[find]
" expr="100"> | 14878 <eval-link callback="{{ fetchInboundReferences }}" label="[find]
" expr="100"> |
14614 </eval-link> | 14879 </eval-link> |
14615 </template> | 14880 </template> |
14616 <template if="{{ inboundReferences != null }}"> | 14881 <template if="{{ inboundReferences != null }}"> |
14617 <template repeat="{{ reference in inboundReferences['references'
] }}"> | 14882 <template repeat="{{ reference in inboundReferences['references'
] }}"> |
14618 <inbound-reference ref="{{ reference }}"></inbound-reference> | 14883 <inbound-reference ref="{{ reference }}"></inbound-reference> |
14619 </template> | 14884 </template> |
14620 </template> | 14885 </template> |
14621 </div> | 14886 </div> |
14622 </div> | 14887 </div> |
14623 <template if="{{ instance['type_class'] != null }}"> | 14888 <template if="{{ instance.typeClass != null }}"> |
14624 <div class="memberItem"> | 14889 <div class="memberItem"> |
14625 <div class="memberName">type class</div> | 14890 <div class="memberName">type class</div> |
14626 <div class="memberValue"> | 14891 <div class="memberValue"> |
14627 <class-ref ref="{{ instance['type_class'] }}"> | 14892 <class-ref ref="{{ instance.typeClass }}"> |
14628 </class-ref> | 14893 </class-ref> |
14629 </div> | 14894 </div> |
14630 </div> | 14895 </div> |
14631 </template> | 14896 </template> |
14632 <template if="{{ instance['closureFunc'] != null }}"> | 14897 <template if="{{ instance.isClosure }}"> |
14633 <div class="memberItem"> | 14898 <div class="memberItem"> |
14634 <div class="memberName">closure function</div> | 14899 <div class="memberName">closure function</div> |
14635 <div class="memberValue"> | 14900 <div class="memberValue"> |
14636 <function-ref ref="{{ instance['closureFunc'] }}"> | 14901 <function-ref ref="{{ instance.closureFunc }}"> |
14637 </function-ref> | 14902 </function-ref> |
14638 </div> | 14903 </div> |
14639 </div> | 14904 </div> |
14640 </template> | 14905 </template> |
14641 | 14906 |
14642 <div class="memberItem"> </div> | 14907 <div class="memberItem"> </div> |
14643 | 14908 |
14644 <div class="memberItem"> | 14909 <div class="memberItem"> |
14645 <div class="memberName">toString()</div> | 14910 <div class="memberName">toString()</div> |
14646 <div class="memberValue"> | 14911 <div class="memberValue"> |
14647 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> | 14912 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> |
14648 </div> | 14913 </div> |
14649 </div> | 14914 </div> |
14650 </div> | 14915 </div> |
14651 </div> | 14916 </div> |
14652 | 14917 |
14653 <hr> | 14918 <hr> |
14654 | 14919 |
14655 <div class="content"> | 14920 <div class="content"> |
14656 <template if="{{ instance['fields'].isNotEmpty }}"> | 14921 <template if="{{ instance.fields.isNotEmpty }}"> |
14657 fields ({{ instance['fields'].length }}) | 14922 fields ({{ instance.fields.length }}) |
14658 <curly-block expand="{{ instance['fields'].length <= 8 }}"> | 14923 <curly-block expand="{{ instance.fields.length <= 8 }}"> |
14659 <div class="memberList"> | 14924 <div class="memberList"> |
14660 <template repeat="{{ field in instance['fields'] }}"> | 14925 <template repeat="{{ field in instance.fields }}"> |
14661 <div class="memberItem"> | 14926 <div class="memberItem"> |
14662 <div class="memberName"> | 14927 <div class="memberName"> |
14663 <field-ref ref="{{ field['decl'] }}"></field-ref> | 14928 <field-ref ref="{{ field['decl'] }}"></field-ref> |
14664 </div> | 14929 </div> |
14665 <div class="memberValue"> | 14930 <div class="memberValue"> |
14666 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 14931 <any-service-ref ref="{{ field['value'] }}"></any-service-re
f> |
14667 </div> | 14932 </div> |
14668 </div> | 14933 </div> |
14669 </template> | 14934 </template> |
14670 </div> | 14935 </div> |
14671 </curly-block><br><br> | 14936 </curly-block><br><br> |
14672 </template> | 14937 </template> |
14673 | 14938 |
14674 <template if="{{ instance['nativeFields'].isNotEmpty }}"> | 14939 <template if="{{ instance.nativeFields.isNotEmpty }}"> |
14675 native fields ({{ instance['nativeFields'].length }}) | 14940 native fields ({{ instance.nativeFields.length }}) |
14676 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}"> | 14941 <curly-block expand="{{ instance.nativeFields.length <= 8 }}"> |
14677 <div class="memberList"> | 14942 <div class="memberList"> |
14678 <template repeat="{{ field in instance['nativeFields'] }}"> | 14943 <template repeat="{{ field in instance.nativeFields }}"> |
14679 <div class="memberItem"> | 14944 <div class="memberItem"> |
14680 <div class="memberName">[{{ field['index']}}]</div> | 14945 <div class="memberName">[{{ field['index']}}]</div> |
14681 <div class="memberValue">[{{ field['value']}}]</div> | 14946 <div class="memberValue">[{{ field['value']}}]</div> |
14682 </div> | 14947 </div> |
14683 </template> | 14948 </template> |
14684 </div> | 14949 </div> |
14685 </curly-block><br><br> | 14950 </curly-block><br><br> |
14686 </template> | 14951 </template> |
14687 | 14952 |
14688 <template if="{{ instance['elements'].isNotEmpty }}"> | 14953 <template if="{{ instance.elements.isNotEmpty }}"> |
14689 elements ({{ instance['elements'].length }}) | 14954 elements ({{ instance.elements.length }}) |
14690 <curly-block expand="{{ instance['elements'].length <= 8 }}"> | 14955 <curly-block expand="{{ instance.elements.length <= 8 }}"> |
14691 <div class="memberList"> | 14956 <div class="memberList"> |
14692 <template repeat="{{ element in instance['elements'] }}"> | 14957 <template repeat="{{ element in instance.elements }}"> |
14693 <div class="memberItem"> | 14958 <div class="memberItem"> |
14694 <div class="memberName">[{{ element['index']}}]</div> | 14959 <div class="memberName">[{{ element['index']}}]</div> |
14695 <div class="memberValue"> | 14960 <div class="memberValue"> |
14696 <instance-ref ref="{{ element['value'] }}"> | 14961 <any-service-ref ref="{{ element['value'] }}"> |
14697 </instance-ref> | 14962 |
14698 </div> | 14963 </any-service-ref></div> |
14699 </div> | 14964 </div> |
14700 </template> | 14965 </template> |
14701 </div> | 14966 </div> |
14702 </curly-block><br><br> | 14967 </curly-block><br><br> |
14703 </template> | 14968 </template> |
14704 </div> | 14969 </div> |
14705 | 14970 |
14706 <hr> | 14971 <hr> |
14707 | 14972 |
14708 <div class="content"> | 14973 <div class="content"> |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15082 variables ({{ library.variables.length }}) | 15347 variables ({{ library.variables.length }}) |
15083 <curly-block expand="{{ library.variables.length <= 8 }}"> | 15348 <curly-block expand="{{ library.variables.length <= 8 }}"> |
15084 <div class="memberList"> | 15349 <div class="memberList"> |
15085 <template repeat="{{ field in library.variables }}"> | 15350 <template repeat="{{ field in library.variables }}"> |
15086 <div class="memberItem"> | 15351 <div class="memberItem"> |
15087 <div class="memberName"> | 15352 <div class="memberName"> |
15088 <field-ref ref="{{ field }}"></field-ref> | 15353 <field-ref ref="{{ field }}"></field-ref> |
15089 </div> | 15354 </div> |
15090 <div class="memberValue"> | 15355 <div class="memberValue"> |
15091 <template if="{{ field['value'] != null }}"> | 15356 <template if="{{ field['value'] != null }}"> |
15092 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 15357 <any-service-ref ref="{{ field['value'] }}"></any-service-re
f> |
15093 </template> | 15358 </template> |
15094 </div> | 15359 </div> |
15095 </div> | 15360 </div> |
15096 </template> | 15361 </template> |
15097 </div> | 15362 </div> |
15098 </curly-block><br> | 15363 </curly-block><br> |
15099 <br> | 15364 <br> |
15100 </template> | 15365 </template> |
15101 | 15366 |
15102 <template if="{{ library.functions.isNotEmpty }}"> | 15367 <template if="{{ library.functions.isNotEmpty }}"> |
(...skipping 5079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20182 </style> | 20447 </style> |
20183 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a> | 20448 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a> |
20184 </template> | 20449 </template> |
20185 </polymer-element> | 20450 </polymer-element> |
20186 | 20451 |
20187 | 20452 |
20188 | 20453 |
20189 <observatory-application devtools="true"></observatory-application> | 20454 <observatory-application devtools="true"></observatory-application> |
20190 | 20455 |
20191 <script src="index_devtools.html_bootstrap.dart.js" async=""></script></body></h
tml> | 20456 <script src="index_devtools.html_bootstrap.dart.js" async=""></script></body></h
tml> |
OLD | NEW |