| OLD | NEW |
| 1 <head> | 1 <head> |
| 2 <link rel="import" href="class_ref.html"> | 2 <link rel="import" href="class_ref.html"> |
| 3 <link rel="import" href="instance_ref.html"> |
| 4 <link rel="import" href="library_ref.html"> |
| 3 <link rel="import" href="nav_bar.html"> | 5 <link rel="import" href="nav_bar.html"> |
| 6 <link rel="import" href="script_ref.html"> |
| 4 <link rel="import" href="observatory_element.html"> | 7 <link rel="import" href="observatory_element.html"> |
| 5 </head> | 8 </head> |
| 6 <polymer-element name="field-view" extends="observatory-element"> | 9 <polymer-element name="field-view" extends="observatory-element"> |
| 7 <template> | 10 <template> |
| 11 <style> |
| 12 .content { |
| 13 padding-left: 10%; |
| 14 font: 400 14px 'Montserrat', sans-serif; |
| 15 } |
| 16 h1 { |
| 17 font: 400 18px 'Montserrat', sans-serif; |
| 18 } |
| 19 .memberList { |
| 20 display: table; |
| 21 } |
| 22 .memberItem { |
| 23 display: table-row; |
| 24 } |
| 25 .memberName, .memberValue { |
| 26 display: table-cell; |
| 27 vertical-align: top; |
| 28 padding: 3px 0 3px 1em; |
| 29 font: 400 14px 'Montserrat', sans-serif; |
| 30 } |
| 31 </style> |
| 32 |
| 8 <nav-bar> | 33 <nav-bar> |
| 9 <top-nav-menu></top-nav-menu> | 34 <top-nav-menu></top-nav-menu> |
| 10 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> | 35 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> |
| 11 <template if="{{ field['owner'].serviceType == 'Class' }}"> | 36 <template if="{{ field['owner'].serviceType == 'Class' }}"> |
| 12 <!-- TODO(turnidge): Add library nav menu here. --> | 37 <!-- TODO(turnidge): Add library nav menu here. --> |
| 13 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> | 38 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> |
| 14 </template> | 39 </template> |
| 15 <template if="{{ field['owner'].serviceType == 'Library' }}"> | 40 <template if="{{ field['owner'].serviceType == 'Library' }}"> |
| 16 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> | 41 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> |
| 17 </template> | 42 </template> |
| 18 <nav-menu link="." anchor="{{ field['user_name'] }}" last="{{ true }}"></n
av-menu> | 43 <nav-menu link="." anchor="{{ field['user_name'] }}" last="{{ true }}"></n
av-menu> |
| 19 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 44 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
| 20 </nav-bar> | 45 </nav-bar> |
| 21 | 46 |
| 22 <div class="row"> | 47 <div class="content"> |
| 23 <div class="col-md-8 col-md-offset-2"> | 48 <h1> |
| 24 <div class="panel panel-warning"> | 49 <template if="{{ field['static'] }}">static</template> |
| 25 <div class="panel-heading"> | 50 <template if="{{ field['final'] }}">final</template> |
| 26 <template if="{{ field['static'] }}">static</template> | 51 <template if="{{ field['const'] }}">const</template> |
| 27 <template if="{{ field['final'] }}">final</template> | 52 <template if="{{ (field['declared_type']['name'] == 'dynamic' && |
| 28 <template if="{{ field['const'] }}">const</template> | 53 !field['final'] && !field['const']) }}"> |
| 29 {{ field['user_name'] }} ({{ field['name'] }}) | 54 var |
| 30 <class-ref ref="{{ field['owner'] }}"></class-ref> | 55 </template> |
| 56 <template if="{{ (field['declared_type']['user_name'] != 'dynamic') }}"> |
| 57 {{ field['declared_type']['user_name'] }} |
| 58 </template> |
| 59 {{ field['user_name'] }} |
| 60 </h1> |
| 61 <div class="memberList"> |
| 62 <div class="memberItem"> |
| 63 <div class="memberName">owner</div> |
| 64 <div class="memberValue"> |
| 65 <template if="{{ field['owner'].serviceType == 'Class' }}"> |
| 66 <class-ref ref="{{ field['owner'] }}"></class-ref> |
| 67 </template> |
| 68 <template if="{{ field['owner'].serviceType != 'Class' }}"> |
| 69 <library-ref ref="{{ field['owner'] }}"></library-ref> |
| 70 </template> |
| 71 </div> |
| 31 </div> | 72 </div> |
| 32 <div class="panel-body"> | 73 <div class="memberItem"> |
| 33 <template if="{{ field['guard_class'] == 'dynamic'}}"> | 74 <div class="memberName">script</div> |
| 34 <div class="alert alert-danger"> | 75 <div class="memberValue"> |
| 35 Field has been assigned multiple types. If a field is only ever | 76 <script-ref ref="{{ field['script'] }}"></script-ref> |
| 36 assigned a single type, performance may improve. | 77 </div> |
| 78 </div> |
| 79 <template if="{{ !field['static'] }}"> |
| 80 <div class="memberItem" |
| 81 title="The types observed for this field at runtime. Fields that
are observed to have a single type at runtime or to never be null may allow for
additional optimization."> |
| 82 <div class="memberName">observed types</div> |
| 83 <div class="memberValue"> |
| 84 <template if="{{ field['guard_class'] == 'dynamic' }}"> |
| 85 various |
| 86 </template> |
| 87 <template if="{{ field['guard_class'] == 'unknown' }}"> |
| 88 none |
| 89 </template> |
| 90 <template if="{{ field['guard_class'] != 'unknown' && |
| 91 field['guard_class'] != 'dynamic' }}"> |
| 92 <class-ref ref="{{ field['guard_class'] }}"></class-ref> |
| 93 <template if="{{ field['guard_nullable'] }}"> |
| 94 — null observed |
| 95 </template> |
| 96 <template if="{{ !field['guard_nullable'] }}"> |
| 97 — null not observed |
| 98 </template> |
| 99 </template> |
| 100 </div> |
| 37 </div> | 101 </div> |
| 38 </template> | 102 </template> |
| 39 <template if="{{ (field['guard_class'] != 'dynamic') && (field['guard_cl
ass'] != 'unknown') }}"> | 103 <template if="{{ field['value'] != null }}"> |
| 40 <div class="alert alert-success">Field has monomorphic type</div> | 104 <div class="memberItem"> |
| 41 <template if="{{ (field['guard_class'] != 'dynamic') && | 105 <div class="memberName">static value</div> |
| 42 field['guard_nullable'] }}"> | 106 <div class="memberValue"> |
| 43 <div class="alert alert-info"> | 107 <instance-ref ref="{{ field['value'] }}"></instance-ref> |
| 44 Field has been assigned null. If a field is never assigned null, | |
| 45 performance may improve. | |
| 46 </div> | 108 </div> |
| 47 </template> | 109 </div> |
| 48 <blockquote> | |
| 49 <class-ref ref="{{ field['guard_class'] }}"></class-ref> | |
| 50 </blockquote> | |
| 51 </template> | 110 </template> |
| 52 </div> | |
| 53 </div> | 111 </div> |
| 54 </div> | 112 </div> |
| 55 </div> | |
| 56 </template> | 113 </template> |
| 57 <script type="application/dart" src="field_view.dart"></script> | 114 <script type="application/dart" src="field_view.dart"></script> |
| 58 </polymer-element> | 115 </polymer-element> |
| OLD | NEW |