| OLD | NEW |
| (Empty) |
| 1 <link rel="import" href="../../../../packages/polymer/polymer.html"> | |
| 2 <link rel="import" href="curly_block.html"> | |
| 3 <link rel="import" href="eval_box.html"> | |
| 4 <link rel="import" href="eval_link.html"> | |
| 5 <link rel="import" href="field_ref.html"> | |
| 6 <link rel="import" href="function_ref.html"> | |
| 7 <link rel="import" href="instance_ref.html"> | |
| 8 <link rel="import" href="library_ref.html"> | |
| 9 <link rel="import" href="nav_bar.html"> | |
| 10 <link rel="import" href="observatory_element.html"> | |
| 11 <link rel="import" href="script_inset.html"> | |
| 12 <link rel="import" href="script_ref.html"> | |
| 13 | |
| 14 <polymer-element name="class-view" extends="observatory-element"> | |
| 15 <template> | |
| 16 <link rel="stylesheet" href="css/shared.css"> | |
| 17 <nav-bar> | |
| 18 <top-nav-menu></top-nav-menu> | |
| 19 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> | |
| 20 <library-nav-menu library="{{ cls.library }}"></library-nav-menu> | |
| 21 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> | |
| 22 <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></n
av-refresh> | |
| 23 <nav-refresh callback="{{ refresh }}"></nav-refresh> | |
| 24 <nav-control></nav-control> | |
| 25 </nav-bar> | |
| 26 | |
| 27 <div class="content"> | |
| 28 <h1> | |
| 29 <template if="{{ cls.isAbstract }}"> | |
| 30 abstract | |
| 31 </template> | |
| 32 <template if="{{ cls.isPatch }}"> | |
| 33 patch | |
| 34 </template> | |
| 35 class {{ cls.name }} | |
| 36 </h1> | |
| 37 <div class="memberList"> | |
| 38 <div class="memberItem"> | |
| 39 <div class="memberName">library</div> | |
| 40 <div class="memberValue"> | |
| 41 <library-ref ref="{{ cls.library }}"></library-ref> | |
| 42 </div> | |
| 43 </div> | |
| 44 <div class="memberItem"> | |
| 45 <div class="memberName">script</div> | |
| 46 <div class="memberValue"> | |
| 47 <script-ref ref="{{ cls.script }}" pos="{{ cls.tokenPos }}"> | |
| 48 </script-ref> | |
| 49 </div> | |
| 50 </div> | |
| 51 | |
| 52 <div class="memberItem"> </div> | |
| 53 | |
| 54 <template if="{{ cls.superclass != null }}"> | |
| 55 <div class="memberItem"> | |
| 56 <div class="memberName">extends</div> | |
| 57 <div class="memberValue"> | |
| 58 <class-ref ref="{{ cls.superclass }}"></class-ref> | |
| 59 </div> | |
| 60 </div> | |
| 61 </template> | |
| 62 <template if="{{ cls.subclasses.length > 0 }}"> | |
| 63 <div class="memberItem"> | |
| 64 <div class="memberName">extended by</div> | |
| 65 <div class="memberValue"> | |
| 66 <template repeat="{{ subclass in cls.subclasses }}"> | |
| 67 <class-ref ref="{{ subclass }}"></class-ref> | |
| 68 </template> | |
| 69 </div> | |
| 70 </div> | |
| 71 </template> | |
| 72 | |
| 73 <div class="memberItem"> </div> | |
| 74 | |
| 75 <template if="{{ cls.interfaces.length > 0 }}"> | |
| 76 <div class="memberItem"> | |
| 77 <div class="memberName">implements</div> | |
| 78 <div class="memberValue"> | |
| 79 <template repeat="{{ interface in cls.interfaces }}"> | |
| 80 <class-ref ref="{{ interface }}"></class-ref> | |
| 81 </template> | |
| 82 </div> | |
| 83 </div> | |
| 84 </template> | |
| 85 <template if="{{ cls.name != cls.vmName }}"> | |
| 86 <div class="memberItem"> | |
| 87 <div class="memberName">vm name</div> | |
| 88 <div class="memberValue">{{ cls.vmName }}</div> | |
| 89 </div> | |
| 90 </template> | |
| 91 </div> | |
| 92 </div> | |
| 93 | |
| 94 <template if="{{ cls.error != null }}"> | |
| 95 <error-ref ref="{{ cls.error }}"></error-ref> | |
| 96 </template> | |
| 97 | |
| 98 <hr> | |
| 99 | |
| 100 <div class="content"> | |
| 101 <template if="{{ cls.fields.isNotEmpty }}"> | |
| 102 fields ({{ cls.fields.length }}) | |
| 103 <curly-block expand="{{ cls.fields.length <= 8 }}"> | |
| 104 <div class="memberList"> | |
| 105 <template repeat="{{ field in cls.fields }}"> | |
| 106 <div class="memberItem"> | |
| 107 <div class="memberName"> | |
| 108 <field-ref ref="{{ field }}"></field-ref> | |
| 109 </div> | |
| 110 <div class="memberValue"> | |
| 111 <template if="{{ field.value != null }}"> | |
| 112 <any-service-ref ref="{{ field.value }}"></any-service-ref> | |
| 113 </template> | |
| 114 </div> | |
| 115 </div> | |
| 116 </template> | |
| 117 </div> | |
| 118 </curly-block><br><br> | |
| 119 </template> | |
| 120 | |
| 121 <template if="{{ cls.functions.isNotEmpty }}"> | |
| 122 functions ({{ cls.functions.length }}) | |
| 123 <curly-block expand="{{ cls.functions.length <= 8 }}"> | |
| 124 <div class="memberList"> | |
| 125 <template repeat="{{ function in cls.functions }}"> | |
| 126 <div class="memberItem"> | |
| 127 <div class="memberValue"> | |
| 128 <function-ref ref="{{ function }}" qualified="{{ false }}"> | |
| 129 </function-ref> | |
| 130 </div> | |
| 131 </div> | |
| 132 </template> | |
| 133 </div> | |
| 134 </curly-block><br><br> | |
| 135 </template> | |
| 136 | |
| 137 <template if="{{ !cls.hasNoAllocations }}"> | |
| 138 instances | |
| 139 <div class="memberItem"> | |
| 140 <div class="memberName">currently allocated</div> | |
| 141 <div class="memberValue"> | |
| 142 count {{ cls.newSpace.current.instances + cls.oldSpace.current.ins
tances }} | |
| 143 (shallow size {{ cls.newSpace.current.bytes + cls.oldSpace.current
.bytes | formatSize }}) | |
| 144 </div> | |
| 145 </div> | |
| 146 <div class="memberItem"> | |
| 147 <div class="memberName">strongly reachable</div> | |
| 148 <div class="memberValue"> | |
| 149 <template if="{{ instances == null }}"> | |
| 150 <eval-link callback="{{ reachable }}" | |
| 151 label="[find]" | |
| 152 expr="100"> | |
| 153 </eval-link> | |
| 154 </template> | |
| 155 <template if="{{ instances != null }}"> | |
| 156 sample | |
| 157 <any-service-ref ref="{{ instances['sample'] }}"></any-service-r
ef> | |
| 158 <template if="{{ instances['totalCount'] > instances['sampleCoun
t'] }}"> | |
| 159 <eval-link callback="{{ reachable }}" | |
| 160 label="[more]" | |
| 161 expr="{{ instances['sampleCount'] * 2 }}"> | |
| 162 </eval-link> | |
| 163 </template> | |
| 164 of total {{ instances['totalCount'] }} | |
| 165 </template> | |
| 166 </div> | |
| 167 </div> | |
| 168 <div class="memberItem"> | |
| 169 <div class="memberName">retained size</div> | |
| 170 <div class="memberValue"> | |
| 171 <template if="{{ retainedBytes == null }}"> | |
| 172 <eval-link callback="{{ retainedSize }}" | |
| 173 label="[calculate]"> | |
| 174 </eval-link> | |
| 175 </template> | |
| 176 <template if="{{ retainedBytes != null }}"> | |
| 177 {{ retainedBytes | formatSize }} | |
| 178 </template> | |
| 179 </div> | |
| 180 </div> | |
| 181 </template> | |
| 182 </div> | |
| 183 | |
| 184 <hr> | |
| 185 | |
| 186 <div class="content"> | |
| 187 <eval-box callback="{{ eval }}"></eval-box> | |
| 188 </div> | |
| 189 | |
| 190 <hr> | |
| 191 <script-inset script="{{ cls.script }}" | |
| 192 startPos="{{ cls.tokenPos }}" | |
| 193 endPos="{{ cls.endTokenPos }}"> | |
| 194 </script-inset> | |
| 195 | |
| 196 <br><br><br><br> | |
| 197 <br><br><br><br> | |
| 198 </template> | |
| 199 </polymer-element> | |
| 200 | |
| 201 <script type="application/dart" src="class_view.dart"></script> | |
| OLD | NEW |