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