| OLD | NEW |
| 1 <link rel="import" href="../../../../packages/polymer/polymer.html"> | 1 <link rel="import" href="../../../../packages/polymer/polymer.html"> |
| 2 <link rel="import" href="class_ref.html"> | 2 <link rel="import" href="class_ref.html"> |
| 3 <link rel="import" href="error_view.html"> | 3 <link rel="import" href="error_view.html"> |
| 4 <link rel="import" href="eval_box.html"> | 4 <link rel="import" href="eval_box.html"> |
| 5 <link rel="import" href="eval_link.html"> | 5 <link rel="import" href="eval_link.html"> |
| 6 <link rel="import" href="field_ref.html"> | 6 <link rel="import" href="field_ref.html"> |
| 7 <link rel="import" href="function_ref.html"> | 7 <link rel="import" href="function_ref.html"> |
| 8 <link rel="import" href="inbound_reference.html"> | 8 <link rel="import" href="inbound_reference.html"> |
| 9 <link rel="import" href="instance_ref.html"> | 9 <link rel="import" href="instance_ref.html"> |
| 10 <link rel="import" href="observatory_element.html"> | 10 <link rel="import" href="observatory_element.html"> |
| 11 <link rel="import" href="nav_bar.html"> | 11 <link rel="import" href="nav_bar.html"> |
| 12 | 12 |
| 13 <polymer-element name="instance-view" extends="observatory-element"> | 13 <polymer-element name="instance-view" extends="observatory-element"> |
| 14 <template> | 14 <template> |
| 15 <link rel="stylesheet" href="css/shared.css"> | 15 <link rel="stylesheet" href="css/shared.css"> |
| 16 <nav-bar> | 16 <nav-bar> |
| 17 <top-nav-menu></top-nav-menu> | 17 <top-nav-menu></top-nav-menu> |
| 18 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> | 18 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> |
| 19 <!-- TODO(turnidge): Add library nav menu here. --> | 19 <!-- TODO(turnidge): Add library nav menu here. --> |
| 20 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu> | 20 <class-nav-menu cls="{{ instance.clazz }}"></class-nav-menu> |
| 21 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> | 21 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> |
| 22 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 22 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 23 <nav-control></nav-control> | 23 <nav-control></nav-control> |
| 24 </nav-bar> | 24 </nav-bar> |
| 25 | 25 |
| 26 <template if="{{ instance['error'] != null }}"> | 26 <template if="{{ instance.isError }}"> |
| 27 <error-view error_obj="{{ instance['error'] }}"></error-view> | 27 <error-view error_obj="{{ instance['error'] }}"></error-view> |
| 28 </template> | 28 </template> |
| 29 | 29 |
| 30 <template if="{{ instance['error'] == null }}"> | 30 <template if="{{ !instance.isError }}"> |
| 31 <div class="content"> | 31 <div class="content"> |
| 32 <!-- TODO(turnidge): Handle null instances. --> | 32 <template if="{{ instance.isType }}"> |
| 33 <template if="{{ isType(instance) }}"> | |
| 34 <h1>type {{ instance.name }}</h1> | 33 <h1>type {{ instance.name }}</h1> |
| 35 </template> | 34 </template> |
| 36 <template if="{{ !isType(instance) }}"> | 35 <template if="{{ !instance.isType }}"> |
| 37 <h1>instance of {{ instance['class'].name }}</h1> | 36 <h1>instance of {{ instance.clazz.name }}</h1> |
| 38 </template> | 37 </template> |
| 39 <div class="memberList"> | 38 <div class="memberList"> |
| 40 <div class="memberItem"> | 39 <div class="memberItem"> |
| 41 <div class="memberName">class</div> | 40 <div class="memberName">class</div> |
| 42 <div class="memberValue"> | 41 <div class="memberValue"> |
| 43 <class-ref ref="{{ instance['class'] }}"> | 42 <class-ref ref="{{ instance.clazz }}"> |
| 44 </class-ref> | 43 </class-ref> |
| 45 </div> | 44 </div> |
| 46 </div> | 45 </div> |
| 47 <template if="{{ instance['valueAsString'] != null }}"> | 46 <template if="{{ instance.valueAsString != null }}"> |
| 48 <div class="memberItem"> | 47 <div class="memberItem"> |
| 49 <div class="memberName">value</div> | 48 <div class="memberName">value</div> |
| 50 <div class="memberValue">{{ instance['valueAsString'] }}</div> | 49 <div class="memberValue">{{ instance.valueAsString }}</div> |
| 51 </div> | 50 </div> |
| 52 </template> | 51 </template> |
| 53 <div class="memberItem"> | 52 <div class="memberItem" title="Space for this object in memory"> |
| 54 <div class="memberName">size</div> | 53 <div class="memberName">size</div> |
| 55 <div class="memberValue">{{ instance['size'] | formatSize }}</div> | 54 <div class="memberValue">{{ instance.size | formatSize }}</div> |
| 56 </div> | 55 </div> |
| 57 <div class="memberItem"> | 56 <div class="memberItem" title="Space that would be reclaimed if refere
nces to this object were replaced with null"> |
| 58 <div class="memberName">retained size</div> | 57 <div class="memberName">retained size</div> |
| 59 <div class="memberValue"> | 58 <div class="memberValue"> |
| 60 <template if="{{ retainedBytes == null }}"> | 59 <template if="{{ retainedBytes == null }}"> |
| 61 <eval-link callback="{{ retainedSize }}" | 60 <eval-link callback="{{ retainedSize }}" |
| 62 label="[calculate]"> | 61 label="[calculate]"> |
| 63 </eval-link> | 62 </eval-link> |
| 64 </template> | 63 </template> |
| 65 <template if="{{ retainedBytes != null }}"> | 64 <template if="{{ retainedBytes != null }}"> |
| 66 {{ retainedBytes | formatSize }} | 65 {{ retainedBytes | formatSize }} |
| 67 </template> | 66 </template> |
| (...skipping 27 matching lines...) Expand all Loading... |
| 95 showing {{ path['elements'].length }} of {{ path['length'] }} | 94 showing {{ path['elements'].length }} of {{ path['length'] }} |
| 96 <eval-link | 95 <eval-link |
| 97 callback="{{ retainingPath }}" | 96 callback="{{ retainingPath }}" |
| 98 label="[find more]" | 97 label="[find more]" |
| 99 expr="{{ path['elements'].length * 2 }}"> | 98 expr="{{ path['elements'].length * 2 }}"> |
| 100 </eval-link> | 99 </eval-link> |
| 101 </template> | 100 </template> |
| 102 </template> | 101 </template> |
| 103 </div> | 102 </div> |
| 104 </div> | 103 </div> |
| 105 <div class="memberItem"> | 104 <div class="memberItem" title="Objects which directly reference this o
bject"> |
| 106 <div class="memberName">inbound references</div> | 105 <div class="memberName">inbound references</div> |
| 107 <div class="memberValue"> | 106 <div class="memberValue"> |
| 108 <template if="{{ inboundReferences == null }}"> | 107 <template if="{{ inboundReferences == null }}"> |
| 109 <eval-link callback="{{ fetchInboundReferences }}" | 108 <eval-link callback="{{ fetchInboundReferences }}" |
| 110 label="[find]" | 109 label="[find]" |
| 111 expr="100"> | 110 expr="100"> |
| 112 </eval-link> | 111 </eval-link> |
| 113 </template> | 112 </template> |
| 114 <template if="{{ inboundReferences != null }}"> | 113 <template if="{{ inboundReferences != null }}"> |
| 115 <template repeat="{{ reference in inboundReferences['references'
] }}"> | 114 <template repeat="{{ reference in inboundReferences['references'
] }}"> |
| 116 <inbound-reference ref="{{ reference }}"></inbound-reference> | 115 <inbound-reference ref="{{ reference }}"></inbound-reference> |
| 117 </template> | 116 </template> |
| 118 </template> | 117 </template> |
| 119 </div> | 118 </div> |
| 120 </div> | 119 </div> |
| 121 <template if="{{ instance['type_class'] != null }}"> | 120 <template if="{{ instance.typeClass != null }}"> |
| 122 <div class="memberItem"> | 121 <div class="memberItem"> |
| 123 <div class="memberName">type class</div> | 122 <div class="memberName">type class</div> |
| 124 <div class="memberValue"> | 123 <div class="memberValue"> |
| 125 <class-ref ref="{{ instance['type_class'] }}"> | 124 <class-ref ref="{{ instance.typeClass }}"> |
| 126 </class-ref> | 125 </class-ref> |
| 127 </div> | 126 </div> |
| 128 </div> | 127 </div> |
| 129 </template> | 128 </template> |
| 130 <template if="{{ instance['closureFunc'] != null }}"> | 129 <template if="{{ instance.isClosure }}"> |
| 131 <div class="memberItem"> | 130 <div class="memberItem"> |
| 132 <div class="memberName">closure function</div> | 131 <div class="memberName">closure function</div> |
| 133 <div class="memberValue"> | 132 <div class="memberValue"> |
| 134 <function-ref ref="{{ instance['closureFunc'] }}"> | 133 <function-ref ref="{{ instance.closureFunc }}"> |
| 135 </function-ref> | 134 </function-ref> |
| 136 </div> | 135 </div> |
| 137 </div> | 136 </div> |
| 138 </template> | 137 </template> |
| 139 | 138 |
| 140 <div class="memberItem"> </div> | 139 <div class="memberItem"> </div> |
| 141 | 140 |
| 142 <div class="memberItem"> | 141 <div class="memberItem"> |
| 143 <div class="memberName">toString()</div> | 142 <div class="memberName">toString()</div> |
| 144 <div class="memberValue"> | 143 <div class="memberValue"> |
| 145 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> | 144 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> |
| 146 </div> | 145 </div> |
| 147 </div> | 146 </div> |
| 148 </div> | 147 </div> |
| 149 </div> | 148 </div> |
| 150 | 149 |
| 151 <hr> | 150 <hr> |
| 152 | 151 |
| 153 <div class="content"> | 152 <div class="content"> |
| 154 <template if="{{ instance['fields'].isNotEmpty }}"> | 153 <template if="{{ instance.fields.isNotEmpty }}"> |
| 155 fields ({{ instance['fields'].length }}) | 154 fields ({{ instance.fields.length }}) |
| 156 <curly-block expand="{{ instance['fields'].length <= 8 }}"> | 155 <curly-block expand="{{ instance.fields.length <= 8 }}"> |
| 157 <div class="memberList"> | 156 <div class="memberList"> |
| 158 <template repeat="{{ field in instance['fields'] }}"> | 157 <template repeat="{{ field in instance.fields }}"> |
| 159 <div class="memberItem"> | 158 <div class="memberItem"> |
| 160 <div class="memberName"> | 159 <div class="memberName"> |
| 161 <field-ref ref="{{ field['decl'] }}"></field-ref> | 160 <field-ref ref="{{ field['decl'] }}"></field-ref> |
| 162 </div> | 161 </div> |
| 163 <div class="memberValue"> | 162 <div class="memberValue"> |
| 164 <instance-ref ref="{{ field['value'] }}"></instance-ref> | 163 <any-service-ref ref="{{ field['value'] }}"></any-service-re
f> |
| 165 </div> | 164 </div> |
| 166 </div> | 165 </div> |
| 167 </template> | 166 </template> |
| 168 </div> | 167 </div> |
| 169 </curly-block><br><br> | 168 </curly-block><br><br> |
| 170 </template> | 169 </template> |
| 171 | 170 |
| 172 <template if="{{ instance['nativeFields'].isNotEmpty }}"> | 171 <template if="{{ instance.nativeFields.isNotEmpty }}"> |
| 173 native fields ({{ instance['nativeFields'].length }}) | 172 native fields ({{ instance.nativeFields.length }}) |
| 174 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}"> | 173 <curly-block expand="{{ instance.nativeFields.length <= 8 }}"> |
| 175 <div class="memberList"> | 174 <div class="memberList"> |
| 176 <template repeat="{{ field in instance['nativeFields'] }}"> | 175 <template repeat="{{ field in instance.nativeFields }}"> |
| 177 <div class="memberItem"> | 176 <div class="memberItem"> |
| 178 <div class="memberName">[{{ field['index']}}]</div> | 177 <div class="memberName">[{{ field['index']}}]</div> |
| 179 <div class="memberValue">[{{ field['value']}}]</div> | 178 <div class="memberValue">[{{ field['value']}}]</div> |
| 180 </div> | 179 </div> |
| 181 </template> | 180 </template> |
| 182 </div> | 181 </div> |
| 183 </curly-block><br><br> | 182 </curly-block><br><br> |
| 184 </template> | 183 </template> |
| 185 | 184 |
| 186 <template if="{{ instance['elements'].isNotEmpty }}"> | 185 <template if="{{ instance.elements.isNotEmpty }}"> |
| 187 elements ({{ instance['elements'].length }}) | 186 elements ({{ instance.elements.length }}) |
| 188 <curly-block expand="{{ instance['elements'].length <= 8 }}"> | 187 <curly-block expand="{{ instance.elements.length <= 8 }}"> |
| 189 <div class="memberList"> | 188 <div class="memberList"> |
| 190 <template repeat="{{ element in instance['elements'] }}"> | 189 <template repeat="{{ element in instance.elements }}"> |
| 191 <div class="memberItem"> | 190 <div class="memberItem"> |
| 192 <div class="memberName">[{{ element['index']}}]</div> | 191 <div class="memberName">[{{ element['index']}}]</div> |
| 193 <div class="memberValue"> | 192 <div class="memberValue"> |
| 194 <instance-ref ref="{{ element['value'] }}"> | 193 <any-service-ref ref="{{ element['value'] }}"> |
| 195 </instance-ref> | 194 </instance-ref> |
| 196 </div> | 195 </div> |
| 197 </div> | 196 </div> |
| 198 </template> | 197 </template> |
| 199 </div> | 198 </div> |
| 200 </curly-block><br><br> | 199 </curly-block><br><br> |
| 201 </template> | 200 </template> |
| 202 </div> | 201 </div> |
| 203 | 202 |
| 204 <hr> | 203 <hr> |
| 205 | 204 |
| 206 <div class="content"> | 205 <div class="content"> |
| 207 <eval-box callback="{{ eval }}"></eval-box> | 206 <eval-box callback="{{ eval }}"></eval-box> |
| 208 </div> | 207 </div> |
| 209 <br><br><br><br> | 208 <br><br><br><br> |
| 210 <br><br><br><br> | 209 <br><br><br><br> |
| 211 | 210 |
| 212 </template> | 211 </template> |
| 213 </template> | 212 </template> |
| 214 </polymer-element> | 213 </polymer-element> |
| 215 | 214 |
| 216 <script type="application/dart" src="instance_view.dart"></script> | 215 <script type="application/dart" src="instance_view.dart"></script> |
| OLD | NEW |