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="code_ref.html"> | 3 <link rel="import" href="code_ref.html"> |
4 <link rel="import" href="observatory_element.html"> | 4 <link rel="import" href="observatory_element.html"> |
5 <link rel="import" href="nav_bar.html"> | 5 <link rel="import" href="nav_bar.html"> |
6 </head> | 6 </head> |
7 <polymer-element name="function-view" extends="observatory-element"> | 7 <polymer-element name="function-view" extends="observatory-element"> |
8 <template> | 8 <template> |
| 9 <style> |
| 10 .content { |
| 11 padding-left: 10%; |
| 12 font: 400 14px 'Montserrat', sans-serif; |
| 13 } |
| 14 h1 { |
| 15 font: 400 18px 'Montserrat', sans-serif; |
| 16 } |
| 17 .memberList { |
| 18 display: table; |
| 19 } |
| 20 .memberItem { |
| 21 display: table-row; |
| 22 } |
| 23 .memberName, .memberValue { |
| 24 display: table-cell; |
| 25 vertical-align: top; |
| 26 padding: 3px 0 3px 1em; |
| 27 font: 400 14px 'Montserrat', sans-serif; |
| 28 } |
| 29 </style> |
| 30 |
9 <nav-bar> | 31 <nav-bar> |
10 <top-nav-menu></top-nav-menu> | 32 <top-nav-menu></top-nav-menu> |
11 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> | 33 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> |
12 <template if="{{ function['owner']['type'] == '@Class' }}"> | 34 <template if="{{ function['owner']['type'] == '@Class' }}"> |
13 <!-- TODO(turnidge): Add library nav menu here. --> | 35 <!-- TODO(turnidge): Add library nav menu here. --> |
14 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> | 36 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> |
15 </template> | 37 </template> |
16 <template if="{{ function['owner']['type'] == '@Library' }}"> | 38 <template if="{{ function['owner']['type'] == '@Library' }}"> |
17 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> | 39 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> |
18 </template> | 40 </template> |
19 <nav-menu link="." anchor="{{ function.name }}" last="{{ true }}"></nav-me
nu> | 41 <nav-menu link="." anchor="{{ function.name }}" last="{{ true }}"></nav-me
nu> |
20 <nav-refresh callback="{{ refresh }}"></nav-refresh> | 42 <nav-refresh callback="{{ refresh }}"></nav-refresh> |
21 </nav-bar> | 43 </nav-bar> |
22 | 44 |
23 <div class="row"> | 45 <div class="content"> |
24 <div class="col-md-8 col-md-offset-2"> | 46 <h1>function {{ qualifiedName }}</h1> |
25 <div class="panel panel-warning"> | 47 |
26 <div class="panel-heading"> | 48 <div class="memberList"> |
27 {{ function['user_name'] }} ({{ function['name'] }}) | 49 <div class="memberItem"> |
28 <class-ref ref="{{ function['class'] }}"></class-ref> | 50 <div class="memberName">kind</div> |
| 51 <div class="memberValue"> |
| 52 <template if="{{ function['is_static'] }}">static</template> |
| 53 <template if="{{ function['is_const'] }}">const</template> |
| 54 {{ kind }} |
| 55 </div> |
29 </div> | 56 </div> |
30 <div class="panel-body"> | 57 <template if="{{ function['parent'] != null }}"> |
31 <div> | 58 <div class="memberItem"> |
32 <code-ref ref="{{ function['code'] }}"></code-ref> | 59 <div class="memberName">parent function</div> |
33 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref> | 60 <div class="memberValue"> |
| 61 <function-ref ref="{{ function['parent'] }}"></function-ref> |
| 62 </div> |
34 </div> | 63 </div> |
35 <table class="table table-hover"> | 64 </template> |
36 <tbody> | 65 <template if="{{ function['parent'] == null && |
37 <tr> | 66 function['class'] != null }}"> |
38 <td>static</td><td>{{ function['is_static'] }}</td> | 67 <div class="memberItem"> |
39 </tr> | 68 <div class="memberName">parent class</div> |
40 <tr> | 69 <div class="memberValue"> |
41 <td>Const</td><td>{{ function['is_const'] }}</td> | 70 <class-ref ref="{{ function['class'] }}"></class-ref> |
42 </tr> | 71 </div> |
43 <tr> | 72 </div> |
44 <td>Optimizable</td><td>{{ function['is_optimizable'] }}</td> | 73 </template> |
45 </tr> | 74 <div class="memberItem"> |
46 <tr> | 75 <div class="memberName">script</div> |
47 <td>Inlinable</td><td>{{ function['is_inlinable'] }}</td> | 76 <div class="memberValue"> |
48 </tr> | 77 <script-ref ref="{{ function['script'] }}"> |
49 <tr> | 78 </script-ref> |
50 <td>Kind</td><td>{{ function['kind'] }}</td> | 79 </div> |
51 </tr> | |
52 <tr> | |
53 <td>Usage Count</td><td>{{ function['usage_counter'] }}</td> | |
54 </tr> | |
55 <tr> | |
56 <td>Optimized Call Site Count</td><td>{{ function['optimized_cal
l_site_count'] }}</td> | |
57 </tr> | |
58 <tr> | |
59 <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</t
d> | |
60 </tr> | |
61 </tbody> | |
62 </table> | |
63 </div> | 80 </div> |
64 </div> | 81 |
| 82 <div class="memberItem"> </div> |
| 83 |
| 84 <template if="{{ function['code'] != null }}"> |
| 85 <div class="memberItem"> |
| 86 <div class="memberName">optimized code</div> |
| 87 <div class="memberValue"> |
| 88 <code-ref ref="{{ function['code'] }}"></code-ref> |
| 89 </div> |
| 90 </div> |
| 91 </template> |
| 92 <template if="{{ function['unoptimized_code'] != null }}"> |
| 93 <div class="memberItem"> |
| 94 <div class="memberName">unoptimized code</div> |
| 95 <div class="memberValue"> |
| 96 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref> |
| 97 </div> |
| 98 <div class="memberValue"> |
| 99 <span title="This count is used to determine when a function wil
l be optimized. It is a combination of call counts and other factors."> |
| 100 (usage count: {{ function['usage_counter'] }}) |
| 101 </span> |
| 102 </div> |
| 103 </div> |
| 104 </template> |
| 105 <div class="memberItem"> |
| 106 <div class="memberName">deoptimizations</div> |
| 107 <div class="memberValue">{{ function['deoptimizations'] }}</div> |
| 108 </div> |
| 109 <div class="memberItem"> |
| 110 <div class="memberName">optimizable</div> |
| 111 <div class="memberValue">{{ function['is_optimizable'] }}</div> |
| 112 </div> |
| 113 <div class="memberItem"> |
| 114 <div class="memberName">inlinable</div> |
| 115 <div class="memberValue">{{ function['is_inlinable'] }}</div> |
| 116 </div> |
| 117 <template if="{{ function.name != function.vmName }}"> |
| 118 <div class="memberItem"> |
| 119 <div class="memberName">vm name</div> |
| 120 <div class="memberValue">{{ function.vmName }}</div> |
| 121 </div> |
| 122 </template> |
| 123 </div> |
65 </div> | 124 </div> |
66 </div> | |
67 </template> | 125 </template> |
68 <script type="application/dart" src="function_view.dart"></script> | 126 <script type="application/dart" src="function_view.dart"></script> |
69 </polymer-element> | 127 </polymer-element> |
OLD | NEW |