Index: runtime/observatory/lib/src/elements/instance_view.html |
diff --git a/runtime/observatory/lib/src/elements/instance_view.html b/runtime/observatory/lib/src/elements/instance_view.html |
index b7c9e137d0f64e6930a4cd254e339bd9b105fbce..3c592aa5bc29ac2281d88231faef5c581c3116dc 100644 |
--- a/runtime/observatory/lib/src/elements/instance_view.html |
+++ b/runtime/observatory/lib/src/elements/instance_view.html |
@@ -1,5 +1,4 @@ |
<link rel="import" href="../../../../packages/polymer/polymer.html"> |
-<link rel="import" href="error_view.html"> |
<link rel="import" href="eval_box.html"> |
<link rel="import" href="eval_link.html"> |
@@ -17,355 +16,349 @@ |
<nav-notify notifications="{{ app.notifications }}"></nav-notify> |
</nav-bar> |
- <template if="{{ instance.isError }}"> |
- <error-view error_obj="{{ instance['error'] }}"></error-view> |
- </template> |
+ <div class="content"> |
+ <template if="{{ instance.isAbstractType }}"> |
+ <h1>type {{ instance.name }}</h1> |
+ </template> |
+ <template if="{{ !instance.isAbstractType }}"> |
+ <h1>instance of {{ instance.clazz.name }}</h1> |
+ </template> |
- <template if="{{ !instance.isError }}"> |
- <div class="content"> |
- <template if="{{ instance.isAbstractType }}"> |
- <h1>type {{ instance.name }}</h1> |
- </template> |
- <template if="{{ !instance.isAbstractType }}"> |
- <h1>instance of {{ instance.clazz.name }}</h1> |
- </template> |
+ <object-common object="{{ instance }}"></object-common> |
- <object-common object="{{ instance }}"></object-common> |
+ <div class="memberList"> |
+ <div class="memberItem"> </div> |
- <div class="memberList"> |
- <div class="memberItem"> </div> |
- |
- <template if="{{ instance.valueAsString != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">value</div> |
- <div class="memberValue"> |
- <pre>{{ instance.valueAsString }}</pre> |
- </div> |
+ <template if="{{ instance.valueAsString != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">value</div> |
+ <div class="memberValue"> |
+ <pre>{{ instance.valueAsString }}</pre> |
</div> |
- </template> |
+ </div> |
+ </template> |
- <template if="{{ instance.isString }}"> |
- <div class="memberItem"> |
- <div class="memberName">valueAsLiteral</div> |
- <div class="memberValue"> {{ asStringLiteral(instance.valueAsString, instance.valueAsStringIsTruncated) }}</div> |
- </div> |
- </template> |
+ <template if="{{ instance.isString }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">valueAsLiteral</div> |
+ <div class="memberValue"> {{ asStringLiteral(instance.valueAsString, instance.valueAsStringIsTruncated) }}</div> |
+ </div> |
+ </template> |
- <template if="{{ instance.typeClass != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">type class</div> |
- <div class="memberValue"> |
- <class-ref ref="{{ instance.typeClass }}"> |
- </class-ref> |
- </div> |
+ <template if="{{ instance.typeClass != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">type class</div> |
+ <div class="memberValue"> |
+ <class-ref ref="{{ instance.typeClass }}"> |
+ </class-ref> |
</div> |
- </template> |
- <template if="{{ instance.typeArguments.length > 0 }}"> |
- <div class="memberItem"> |
- <div class="memberName">type arguments</div> |
- <div class="memberValue"> |
- < |
- <template repeat="{{ index in instance.typeArguments['types'].asMap().keys }}"> |
- <instance-ref ref="{{ instance.typeArguments['types'][index] }}"> |
- </instance-ref> |
- <template if="{{ index < instance.typeArguments['types'].length - 1 }}"> |
- , |
- </template> |
+ </div> |
+ </template> |
+ <template if="{{ instance.typeArguments.length > 0 }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">type arguments</div> |
+ <div class="memberValue"> |
+ < |
+ <template repeat="{{ index in instance.typeArguments['types'].asMap().keys }}"> |
+ <instance-ref ref="{{ instance.typeArguments['types'][index] }}"> |
+ </instance-ref> |
+ <template if="{{ index < instance.typeArguments['types'].length - 1 }}"> |
+ , |
</template> |
- > |
- </div> |
+ </template> |
+ > |
</div> |
- </template> |
- <template if="{{ instance.parameterizedClass != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">parameterized class</div> |
- <div class="memberValue"> |
- <class-ref ref="{{ instance.parameterizedClass }}"> |
- </class-ref> |
- </div> |
+ </div> |
+ </template> |
+ <template if="{{ instance.parameterizedClass != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">parameterized class</div> |
+ <div class="memberValue"> |
+ <class-ref ref="{{ instance.parameterizedClass }}"> |
+ </class-ref> |
</div> |
- </template> |
- <template if="{{ instance.parameterIndex != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">parameter index</div> |
- <div class="memberValue"> |
- {{ instance.parameterIndex }} |
- </div> |
+ </div> |
+ </template> |
+ <template if="{{ instance.parameterIndex != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">parameter index</div> |
+ <div class="memberValue"> |
+ {{ instance.parameterIndex }} |
</div> |
- </template> |
- <template if="{{ instance.targetType != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">target type</div> |
- <div class="memberValue"> |
- <instance-ref ref="{{ instance.targetType }}"> |
- </instance-ref> |
- </div> |
+ </div> |
+ </template> |
+ <template if="{{ instance.targetType != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">target type</div> |
+ <div class="memberValue"> |
+ <instance-ref ref="{{ instance.targetType }}"> |
+ </instance-ref> |
</div> |
- </template> |
- <template if="{{ instance.bound != null }}"> |
- <div class="memberItem"> |
- <div class="memberName">bound</div> |
- <div class="memberValue"> |
- <instance-ref ref="{{ instance.bound }}"> |
- </instance-ref> |
- </div> |
+ </div> |
+ </template> |
+ <template if="{{ instance.bound != null }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">bound</div> |
+ <div class="memberValue"> |
+ <instance-ref ref="{{ instance.bound }}"> |
+ </instance-ref> |
</div> |
- </template> |
+ </div> |
+ </template> |
- <template if="{{ instance.isClosure }}"> |
- <div class="memberItem"> |
- <div class="memberName">closure function</div> |
- <div class="memberValue"> |
- <function-ref ref="{{ instance.closureFunction }}"> |
- </function-ref> |
- </div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">closure context</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.context }}"> |
- </any-service-ref> |
- </div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">closure breakpoint</div> |
- <div class="memberValue"> |
- <template if="{{ instance.activationBreakpoint == null }}"> |
- <action-link callback="{{ setBreakOnActivation }}" |
- label="break on activation"> |
- </action-link> |
- </template> |
- <template if="{{ instance.activationBreakpoint != null }}"> |
- {{ instance.activationBreakpoint.toString() }} |
- <action-link callback="{{ clearBreakOnActivation }}" |
- label="remove"> |
- </action-link> |
- </template> |
- </div> |
+ <template if="{{ instance.isClosure }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">closure function</div> |
+ <div class="memberValue"> |
+ <function-ref ref="{{ instance.closureFunction }}"> |
+ </function-ref> |
</div> |
- </template> |
- |
+ </div> |
<div class="memberItem"> |
- <div class="memberName">toString()</div> |
+ <div class="memberName">closure context</div> |
<div class="memberValue"> |
- <eval-link callback="{{ evaluate }}" expr="toString()"></eval-link> |
+ <any-service-ref ref="{{ instance.context }}"> |
+ </any-service-ref> |
</div> |
</div> |
<div class="memberItem"> |
- <div class="memberName">runtimeType</div> |
+ <div class="memberName">closure breakpoint</div> |
<div class="memberValue"> |
- <eval-link callback="{{ evaluate }}" expr="runtimeType"></eval-link> |
+ <template if="{{ instance.activationBreakpoint == null }}"> |
+ <action-link callback="{{ setBreakOnActivation }}" |
+ label="break on activation"> |
+ </action-link> |
+ </template> |
+ <template if="{{ instance.activationBreakpoint != null }}"> |
+ {{ instance.activationBreakpoint.toString() }} |
+ <action-link callback="{{ clearBreakOnActivation }}" |
+ label="remove"> |
+ </action-link> |
+ </template> |
</div> |
</div> |
+ </template> |
+ |
+ <div class="memberItem"> |
+ <div class="memberName">toString()</div> |
+ <div class="memberValue"> |
+ <eval-link callback="{{ evaluate }}" expr="toString()"></eval-link> |
+ </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">runtimeType</div> |
+ <div class="memberValue"> |
+ <eval-link callback="{{ evaluate }}" expr="runtimeType"></eval-link> |
+ </div> |
</div> |
</div> |
+ </div> |
- <hr> |
+ <hr> |
- <div class="content"> |
- <eval-box callback="{{ evaluate }}"></eval-box> |
- </div> |
+ <div class="content"> |
+ <eval-box callback="{{ evaluate }}"></eval-box> |
+ </div> |
- <hr> |
+ <hr> |
- <div class="content"> |
- <template if="{{ instance.nativeFields.isNotEmpty }}"> |
- native fields ({{ instance.nativeFields.length }}) |
- <curly-block expand="{{ instance.nativeFields.length <= 100 }}"> |
- <div class="memberList"> |
- <template repeat="{{ field in instance.nativeFields }}"> |
- <div class="memberItem"> |
- <div class="memberName">[{{ field['index']}}]</div> |
- <div class="memberValue">[{{ field['value']}}]</div> |
- </div> |
- </template> |
- </div> |
- </curly-block><br><br> |
- </template> |
- |
- <template if="{{ instance.fields.isNotEmpty }}"> |
- fields ({{ instance.fields.length }}) |
- <curly-block expand="{{ instance.fields.length <= 100 }}"> |
- <div class="memberList"> |
- <template repeat="{{ field in instance.fields }}"> |
- <div class="memberItem"> |
- <div class="memberName"> |
- <field-ref ref="{{ field.decl }}"></field-ref> |
- </div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ field.value }}"></any-service-ref> |
- </div> |
- </div> |
- </template> |
- </div> |
- </curly-block><br><br> |
- </template> |
+ <div class="content"> |
+ <template if="{{ instance.nativeFields.isNotEmpty }}"> |
+ native fields ({{ instance.nativeFields.length }}) |
+ <curly-block expand="{{ instance.nativeFields.length <= 100 }}"> |
+ <div class="memberList"> |
+ <template repeat="{{ field in instance.nativeFields }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">[{{ field['index']}}]</div> |
+ <div class="memberValue">[{{ field['value']}}]</div> |
+ </div> |
+ </template> |
+ </div> |
+ </curly-block><br><br> |
+ </template> |
- <template if="{{ instance.elements.isNotEmpty }}"> |
- elements ({{ instance.length }}) |
- <curly-block expand="{{ instance.elements.length <= 100 }}"> |
- <div class="memberList"> |
- <template repeat="{{ index in instance.elements.asMap().keys }}"> |
- <div class="memberItem"> |
- <div class="memberName">[{{ index }}]</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.elements[index] }}"> |
- </any-service-ref> |
- </div> |
+ <template if="{{ instance.fields.isNotEmpty }}"> |
+ fields ({{ instance.fields.length }}) |
+ <curly-block expand="{{ instance.fields.length <= 100 }}"> |
+ <div class="memberList"> |
+ <template repeat="{{ field in instance.fields }}"> |
+ <div class="memberItem"> |
+ <div class="memberName"> |
+ <field-ref ref="{{ field.decl }}"></field-ref> |
</div> |
- </template> |
- <template if="{{ instance.length != instance.elements.length }}"> |
- <div class="memberItem"> |
- <div class="memberName">...</div> |
- <div class="memberValue"> |
- <em>{{ instance.length - instance.elements.length }} omitted elements</em> |
- </div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ field.value }}"></any-service-ref> |
</div> |
- </template> |
- </div> |
- </curly-block><br><br> |
- </template> |
+ </div> |
+ </template> |
+ </div> |
+ </curly-block><br><br> |
+ </template> |
- <template if="{{ instance.associations.isNotEmpty }}"> |
- associations ({{ instance.length }}) |
- <curly-block expand="{{ instance.associations.length <= 100 }}"> |
- <div class="memberList"> |
- <template repeat="{{ association in instance.associations }}"> |
- <div class="memberItem"> |
- <div class="memberValue"> |
- [<any-service-ref ref="{{ association.key }}"></any-service-ref>] |
- </div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ association.value }}"></any-service-ref> |
- </div> |
+ <template if="{{ instance.elements.isNotEmpty }}"> |
+ elements ({{ instance.length }}) |
+ <curly-block expand="{{ instance.elements.length <= 100 }}"> |
+ <div class="memberList"> |
+ <template repeat="{{ index in instance.elements.asMap().keys }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">[{{ index }}]</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.elements[index] }}"> |
+ </any-service-ref> |
</div> |
- </template> |
- <template if="{{ instance.length != instance.associations.length }}"> |
- <div class="memberItem"> |
- <div class="memberName">...</div> |
- <div class="memberValue"> |
- <em>{{ instance.length - instance.associations.length }} omitted associations</em> |
- </div> |
+ </div> |
+ </template> |
+ <template if="{{ instance.length != instance.elements.length }}"> |
rmacnak
2016/08/26 17:05:26
indent
|
+ <div class="memberItem"> |
+ <div class="memberName">...</div> |
+ <div class="memberValue"> |
+ <em>{{ instance.length - instance.elements.length }} omitted elements</em> |
</div> |
- </template> |
- </div> |
- </curly-block><br><br> |
- </template> |
+ </div> |
+ </template> |
+ </div> |
+ </curly-block><br><br> |
+ </template> |
- <template if="{{ instance.typedElements.isNotEmpty }}"> |
- elements ({{ instance.length }}) |
- <curly-block expand="{{ instance.typedElements.length <= 100 }}"> |
- <div class="memberList"> |
- <template repeat="{{ index in instance.typedElements.asMap().keys }}"> |
- <div class="memberItem"> |
- <div class="memberName">[{{ index }}]</div> |
- <div class="memberValue">{{ instance.typedElements[index].toString() }}</div> |
+ <template if="{{ instance.associations.isNotEmpty }}"> |
+ associations ({{ instance.length }}) |
+ <curly-block expand="{{ instance.associations.length <= 100 }}"> |
+ <div class="memberList"> |
+ <template repeat="{{ association in instance.associations }}"> |
+ <div class="memberItem"> |
+ <div class="memberValue"> |
+ [<any-service-ref ref="{{ association.key }}"></any-service-ref>] |
</div> |
- </template> |
- <template if="{{ instance.length != instance.typedElements.length }}"> |
- <div class="memberItem"> |
- <div class="memberName">...</div> |
- <div class="memberValue"> |
- <em>{{ instance.length - instance.elements.length }} omitted elements</em> |
- </div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ association.value }}"></any-service-ref> |
</div> |
- </template> |
- </div> |
- </curly-block><br><br> |
- </template> |
- |
- <template if="{{ instance.isRegExp }}"> |
- <div class="memberList"> |
- <div class="memberItem"> |
- <div class="memberName">pattern</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.pattern }}"></any-service-ref> |
</div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">isCaseSensitive</div> |
- <div class="memberValue">{{ instance.isCaseSensitive }}</div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">isMultiLine</div> |
- <div class="memberValue">{{ instance.isMultiLine }}</div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">oneByteFunction</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.oneByteFunction }}"></any-service-ref> |
+ </template> |
+ <template if="{{ instance.length != instance.associations.length }}"> |
rmacnak
2016/08/26 17:05:26
indent
|
+ <div class="memberItem"> |
+ <div class="memberName">...</div> |
+ <div class="memberValue"> |
+ <em>{{ instance.length - instance.associations.length }} omitted associations</em> |
+ </div> |
</div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">twoByteFunction</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.twoByteFunction }}"></any-service-ref> |
+ </template> |
+ </div> |
+ </curly-block><br><br> |
+ </template> |
+ |
+ <template if="{{ instance.typedElements.isNotEmpty }}"> |
+ elements ({{ instance.length }}) |
+ <curly-block expand="{{ instance.typedElements.length <= 100 }}"> |
+ <div class="memberList"> |
+ <template repeat="{{ index in instance.typedElements.asMap().keys }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">[{{ index }}]</div> |
+ <div class="memberValue">{{ instance.typedElements[index].toString() }}</div> |
</div> |
- </div> |
- <div class="memberItem"> |
- <div class="memberName">externalOneByteFunction</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.externalOneByteFunction }}"></any-service-ref> |
+ </template> |
+ <template if="{{ instance.length != instance.typedElements.length }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">...</div> |
+ <div class="memberValue"> |
+ <em>{{ instance.length - instance.elements.length }} omitted elements</em> |
+ </div> |
</div> |
+ </template> |
+ </div> |
+ </curly-block><br><br> |
+ </template> |
+ |
+ <template if="{{ instance.isRegExp }}"> |
+ <div class="memberList"> |
+ <div class="memberItem"> |
+ <div class="memberName">pattern</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.pattern }}"></any-service-ref> |
</div> |
- <div class="memberItem"> |
- <div class="memberName">externalTwoByteFunction</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.externalTwoByteFunction }}"></any-service-ref> |
- </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">isCaseSensitive</div> |
+ <div class="memberValue">{{ instance.isCaseSensitive }}</div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">isMultiLine</div> |
+ <div class="memberValue">{{ instance.isMultiLine }}</div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">oneByteFunction</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.oneByteFunction }}"></any-service-ref> |
</div> |
- <div class="memberItem"> |
- <div class="memberName">oneByteBytecode</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.oneByteBytecode }}"></any-service-ref> |
- </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">twoByteFunction</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.twoByteFunction }}"></any-service-ref> |
</div> |
- <div class="memberItem"> |
- <div class="memberName">twoByteBytecode</div> |
- <div class="memberValue"> |
- <any-service-ref ref="{{ instance.twoByteBytecode }}"></any-service-ref> |
- </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">externalOneByteFunction</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.externalOneByteFunction }}"></any-service-ref> |
</div> |
</div> |
- </template> |
- |
- <template if="{{ instance.isMirrorReference }}"> |
<div class="memberItem"> |
- <div class="memberName">referent</div> |
+ <div class="memberName">externalTwoByteFunction</div> |
<div class="memberValue"> |
- <any-service-ref ref="{{ instance.referent }}"> |
- </any-service-ref> |
+ <any-service-ref ref="{{ instance.externalTwoByteFunction }}"></any-service-ref> |
</div> |
</div> |
- </template> |
- |
- <template if="{{ instance.isWeakProperty }}"> |
<div class="memberItem"> |
- <div class="memberName">key</div> |
+ <div class="memberName">oneByteBytecode</div> |
<div class="memberValue"> |
- <any-service-ref ref="{{ instance.key }}"></any-service-ref> |
+ <any-service-ref ref="{{ instance.oneByteBytecode }}"></any-service-ref> |
</div> |
</div> |
<div class="memberItem"> |
- <div class="memberName">value</div> |
+ <div class="memberName">twoByteBytecode</div> |
<div class="memberValue"> |
- <any-service-ref ref="{{ instance.value }}"></any-service-ref> |
+ <any-service-ref ref="{{ instance.twoByteBytecode }}"></any-service-ref> |
</div> |
</div> |
- </template> |
+ </div> |
+ </template> |
- </div> |
+ <template if="{{ instance.isMirrorReference }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">referent</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.referent }}"> |
+ </any-service-ref> |
+ </div> |
+ </div> |
+ </template> |
- <div class="content-centered-big"> |
- <template if="{{ instance.isClosure }}"> |
- <source-inset location="{{ instance.closureFunction.location }}"></source-inset> |
- </template> |
- <template if="{{ instance.typeClass != null }}"> |
- <source-inset location="{{ instance.typeClass.location }}"></source-inset> |
- </template> |
- </div> |
+ <template if="{{ instance.isWeakProperty }}"> |
+ <div class="memberItem"> |
+ <div class="memberName">key</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.key }}"></any-service-ref> |
+ </div> |
+ </div> |
+ <div class="memberItem"> |
+ <div class="memberName">value</div> |
+ <div class="memberValue"> |
+ <any-service-ref ref="{{ instance.value }}"></any-service-ref> |
+ </div> |
+ </div> |
+ </template> |
+ |
+ </div> |
+ |
+ <div class="content-centered-big"> |
+ <template if="{{ instance.isClosure }}"> |
+ <source-inset location="{{ instance.closureFunction.location }}"></source-inset> |
+ </template> |
+ <template if="{{ instance.typeClass != null }}"> |
+ <source-inset location="{{ instance.typeClass.location }}"></source-inset> |
+ </template> |
+ </div> |
- </template> |
<view-footer></view-footer> |
</template> |
</polymer-element> |