| OLD | NEW |
| (Empty) |
| 1 <link rel="import" href="../../../../packages/polymer/polymer.html"> | |
| 2 <link rel="import" href="action_link.html"> | |
| 3 <link rel="import" href="eval_link.html"> | |
| 4 | |
| 5 <polymer-element name="class-view"> | |
| 6 <template> | |
| 7 <link rel="stylesheet" href="css/shared.css"> | |
| 8 <nav-bar> | |
| 9 <top-nav-menu></top-nav-menu> | |
| 10 <vm-nav-menu vm="{{ cls.isolate.vm }}"></vm-nav-menu> | |
| 11 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> | |
| 12 <library-nav-menu library="{{ cls.library }}"></library-nav-menu> | |
| 13 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> | |
| 14 <nav-refresh callback="{{ refreshAllocationProfile }}" label="Refresh Allo
cation Profile"></nav-refresh> | |
| 15 <nav-refresh callback="{{ refresh }}"></nav-refresh> | |
| 16 <nav-notify notifications="{{ app.notifications }}"></nav-notify> | |
| 17 </nav-bar> | |
| 18 | |
| 19 <div class="content"> | |
| 20 <h1> | |
| 21 <template if="{{ cls.isAbstract }}"> | |
| 22 abstract | |
| 23 </template> | |
| 24 <template if="{{ cls.isPatch }}"> | |
| 25 patch | |
| 26 </template> | |
| 27 <template if="{{ cls.mixin != null }}"> | |
| 28 mixin | |
| 29 </template> | |
| 30 class {{ cls.name }} | |
| 31 </h1> | |
| 32 | |
| 33 <object-common object="{{ cls }}"></object-common> | |
| 34 <br> | |
| 35 | |
| 36 <div class="memberList"> | |
| 37 <div class="memberItem"> | |
| 38 <div class="memberName">library</div> | |
| 39 <div class="memberValue"> | |
| 40 <library-ref ref="{{ cls.library }}"></library-ref> | |
| 41 </div> | |
| 42 </div> | |
| 43 <div class="memberItem"> | |
| 44 <div class="memberName">script</div> | |
| 45 <div class="memberValue"> | |
| 46 <source-link location="{{ cls.location }}"></source-link> | |
| 47 </div> | |
| 48 </div> | |
| 49 | |
| 50 <div class="memberItem"> </div> | |
| 51 | |
| 52 <template if="{{ cls.superclass != null }}"> | |
| 53 <div class="memberItem"> | |
| 54 <div class="memberName">superclass</div> | |
| 55 <div class="memberValue"> | |
| 56 <class-ref ref="{{ cls.superclass }}"></class-ref> | |
| 57 </div> | |
| 58 </div> | |
| 59 </template> | |
| 60 <template if="{{ cls.superType != null }}"> | |
| 61 <div class="memberItem"> | |
| 62 <div class="memberName">supertype</div> | |
| 63 <div class="memberValue"> | |
| 64 <instance-ref ref="{{ cls.superType }}"></instance-ref> | |
| 65 </div> | |
| 66 </div> | |
| 67 </template> | |
| 68 <template if="{{ cls.mixin != null }}"> | |
| 69 <div class="memberItem"> | |
| 70 <div class="memberName">mixin</div> | |
| 71 <div class="memberValue"> | |
| 72 <instance-ref ref="{{ cls.mixin }}"></instance-ref> | |
| 73 </div> | |
| 74 </div> | |
| 75 </template> | |
| 76 <template if="{{ cls.subclasses.length > 0 }}"> | |
| 77 <div class="memberItem"> | |
| 78 <div class="memberName">extended by</div> | |
| 79 <div class="memberValue"> | |
| 80 <template repeat="{{ subclass in cls.subclasses }}"> | |
| 81 <class-ref ref="{{ subclass }}"></class-ref> | |
| 82 </template> | |
| 83 </div> | |
| 84 </div> | |
| 85 </template> | |
| 86 | |
| 87 <div class="memberItem"> </div> | |
| 88 | |
| 89 <template if="{{ cls.interfaces.length > 0 }}"> | |
| 90 <div class="memberItem"> | |
| 91 <div class="memberName">implements</div> | |
| 92 <div class="memberValue"> | |
| 93 <template repeat="{{ interface in cls.interfaces }}"> | |
| 94 <instance-ref ref="{{ interface }}"></instance-ref> | |
| 95 </template> | |
| 96 </div> | |
| 97 </div> | |
| 98 </template> | |
| 99 <template if="{{ cls.name != cls.vmName }}"> | |
| 100 <div class="memberItem"> | |
| 101 <div class="memberName">vm name</div> | |
| 102 <div class="memberValue">{{ cls.vmName }}</div> | |
| 103 </div> | |
| 104 </template> | |
| 105 </div> | |
| 106 </div> | |
| 107 | |
| 108 <template if="{{ cls.error != null }}"> | |
| 109 <error-ref ref="{{ cls.error }}"></error-ref> | |
| 110 </template> | |
| 111 | |
| 112 <hr> | |
| 113 | |
| 114 <div class="content"> | |
| 115 <eval-box context="{{ cls }}"></eval-box> | |
| 116 </div> | |
| 117 | |
| 118 <hr> | |
| 119 | |
| 120 <div class="content"> | |
| 121 <template if="{{ cls.fields.isNotEmpty }}"> | |
| 122 fields ({{ cls.fields.length }}) | |
| 123 <curly-block expand="{{ cls.fields.length <= 8 }}"> | |
| 124 <div class="memberList"> | |
| 125 <template repeat="{{ field in cls.fields }}"> | |
| 126 <div class="memberItem"> | |
| 127 <div class="memberName"> | |
| 128 <field-ref ref="{{ field }}"></field-ref> | |
| 129 </div> | |
| 130 <div class="memberValue"> | |
| 131 <template if="{{ field.staticValue != null }}"> | |
| 132 <any-service-ref ref="{{ field.staticValue }}"></any-service
-ref> | |
| 133 </template> | |
| 134 </div> | |
| 135 </div> | |
| 136 </template> | |
| 137 </div> | |
| 138 </curly-block><br><br> | |
| 139 </template> | |
| 140 | |
| 141 <template if="{{ cls.functions.isNotEmpty }}"> | |
| 142 functions ({{ cls.functions.length }}) | |
| 143 <curly-block expand="{{ cls.functions.length <= 8 }}"> | |
| 144 <div class="memberList"> | |
| 145 <template repeat="{{ function in cls.functions }}"> | |
| 146 <div class="memberItem"> | |
| 147 <div class="memberValue"> | |
| 148 <function-ref ref="{{ function }}" qualified="{{ false }}"> | |
| 149 </function-ref> | |
| 150 </div> | |
| 151 </div> | |
| 152 </template> | |
| 153 </div> | |
| 154 </curly-block><br><br> | |
| 155 </template> | |
| 156 | |
| 157 <template if="{{ !cls.hasNoAllocations }}"> | |
| 158 instances | |
| 159 <div class="memberItem"> | |
| 160 <div class="memberName">currently allocated</div> | |
| 161 <div class="memberValue"> | |
| 162 count {{ cls.newSpace.current.instances + cls.oldSpace.current.ins
tances }} | |
| 163 (shallow size {{ cls.newSpace.current.bytes + cls.oldSpace.current
.bytes | formatSize }}) | |
| 164 </div> | |
| 165 </div> | |
| 166 <div class="memberItem"> | |
| 167 <div class="memberName">strongly reachable</div> | |
| 168 <div class="memberValue"> | |
| 169 <template if="{{ instances == null }}"> | |
| 170 <eval-link callback="{{ reachable }}" | |
| 171 label="[find]" | |
| 172 expr="100"> | |
| 173 </eval-link> | |
| 174 </template> | |
| 175 <template if="{{ instances != null }}"> | |
| 176 <template repeat="{{ sample in instances['samples'] }}"> | |
| 177 <any-service-ref ref="{{ sample }}"> | |
| 178 </any-service-ref><br> | |
| 179 </template> | |
| 180 <template if="{{ instances['totalCount'] > instances['samples'].
length }}"> | |
| 181 <eval-link callback="{{ reachable }}" | |
| 182 label="[more]" | |
| 183 expr="{{ instances['samples'].length * 2 }}"> | |
| 184 </eval-link> | |
| 185 </template> | |
| 186 of total {{ instances['totalCount'] }} | |
| 187 </template> | |
| 188 </div> | |
| 189 </div> | |
| 190 <div class="memberItem"> | |
| 191 <div class="memberName">total reachable memory size</div> | |
| 192 <div class="memberValue"> | |
| 193 <template if="{{ reachableBytes == null }}"> | |
| 194 <eval-link callback="{{ reachableSize }}" | |
| 195 label="[calculate]"> | |
| 196 </eval-link> | |
| 197 </template> | |
| 198 <template if="{{ reachableBytes != null }}"> | |
| 199 {{ reachableBytes | formatSize }} | |
| 200 </template> | |
| 201 </div> | |
| 202 </div> | |
| 203 <div class="memberItem"> | |
| 204 <div class="memberName">total retained memory size</div> | |
| 205 <div class="memberValue"> | |
| 206 <template if="{{ retainedBytes == null }}"> | |
| 207 <eval-link callback="{{ retainedSize }}" | |
| 208 label="[calculate]"> | |
| 209 </eval-link> | |
| 210 </template> | |
| 211 <template if="{{ retainedBytes != null }}"> | |
| 212 {{ retainedBytes | formatSize }} | |
| 213 </template> | |
| 214 </div> | |
| 215 </div> | |
| 216 <div class="memberItem"> | |
| 217 <div class="memberName">toplist by retained memory</div> | |
| 218 <div class="memberValue"> | |
| 219 <template if="{{ mostRetained == null }}"> | |
| 220 <eval-link callback="{{ retainedToplist }}" | |
| 221 label="[find]"> | |
| 222 </eval-link> | |
| 223 </template> | |
| 224 <template if="{{ mostRetained != null }}"> | |
| 225 <template repeat="{{ most in mostRetained }}"> | |
| 226 {{ most.retainedSize | formatSize }}<any-service-ref ref="{{ m
ost }}"></any-service-ref><br> | |
| 227 </template> | |
| 228 </template> | |
| 229 </div> | |
| 230 </div> | |
| 231 </template> | |
| 232 </div> | |
| 233 | |
| 234 <hr> | |
| 235 | |
| 236 <div class="content"> | |
| 237 <h2>Allocations</h2> | |
| 238 <div class="memberList"> | |
| 239 <template if="{{ cls.traceAllocations }}"> | |
| 240 <div class="memberItem"> | |
| 241 <div class="memberName">Tracing allocations?</div> | |
| 242 <div class="memberValue"> | |
| 243 <span>Yes</span><action-link label="disable" callback="{{ toggleAl
locationTrace }}"></action-link> | |
| 244 </div> | |
| 245 </div> | |
| 246 </template> | |
| 247 <template if="{{ !cls.traceAllocations }}"> | |
| 248 <div class="memberItem"> | |
| 249 <div class="memberName">Tracing allocations?</div> | |
| 250 <div class="memberValue"> | |
| 251 <span>No</span><action-link label="enable" callback="{{ toggleAllo
cationTrace }}"></action-link> | |
| 252 </div> | |
| 253 </div> | |
| 254 </template> | |
| 255 </div> | |
| 256 <div id="sampleBufferControl"></div> | |
| 257 <br> | |
| 258 <div id="stackTraceTreeConfig"></div> | |
| 259 <br> | |
| 260 <div id="cpuProfileTree"></div> | |
| 261 </div> | |
| 262 | |
| 263 <div class="content-centered-big"> | |
| 264 <hr> | |
| 265 <source-inset location="{{ cls.location }}"> | |
| 266 </source-inset> | |
| 267 </div> | |
| 268 | |
| 269 <view-footer></view-footer> | |
| 270 </template> | |
| 271 </polymer-element> | |
| 272 | |
| 273 <script type="application/dart" src="class_view.dart"></script> | |
| OLD | NEW |