| Index: runtime/bin/vmservice/client/lib/src/elements/function_view.html
|
| diff --git a/runtime/bin/vmservice/client/lib/src/elements/function_view.html b/runtime/bin/vmservice/client/lib/src/elements/function_view.html
|
| index 1f474f6ee796ab10f358b3f6e483b43e9678290b..a337c8dc1714dcaa89bdd909a205b2d7bdeee056 100644
|
| --- a/runtime/bin/vmservice/client/lib/src/elements/function_view.html
|
| +++ b/runtime/bin/vmservice/client/lib/src/elements/function_view.html
|
| @@ -1,11 +1,35 @@
|
| <head>
|
| <link rel="import" href="class_ref.html">
|
| <link rel="import" href="code_ref.html">
|
| + <link rel="import" href="function_ref.html">
|
| <link rel="import" href="observatory_element.html">
|
| <link rel="import" href="nav_bar.html">
|
| + <link rel="import" href="script_ref.html">
|
| </head>
|
| <polymer-element name="function-view" extends="observatory-element">
|
| <template>
|
| + <style>
|
| + .content {
|
| + padding-left: 10%;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + }
|
| + h1 {
|
| + font: 400 18px 'Montserrat', sans-serif;
|
| + }
|
| + .memberList {
|
| + display: table;
|
| + }
|
| + .memberItem {
|
| + display: table-row;
|
| + }
|
| + .memberName, .memberValue {
|
| + display: table-cell;
|
| + vertical-align: top;
|
| + padding: 3px 0 3px 1em;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + }
|
| + </style>
|
| +
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu>
|
| @@ -20,50 +44,86 @@
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| </nav-bar>
|
|
|
| - <div class="row">
|
| - <div class="col-md-8 col-md-offset-2">
|
| - <div class="panel panel-warning">
|
| - <div class="panel-heading">
|
| - {{ function['user_name'] }} ({{ function['name'] }})
|
| - <class-ref ref="{{ function['class'] }}"></class-ref>
|
| + <div class="content">
|
| + <h1>function {{ qualifiedName }}</h1>
|
| +
|
| + <div class="memberList">
|
| + <div class="memberItem">
|
| + <div class="memberName">kind</div>
|
| + <div class="memberValue">
|
| + <template if="{{ function['is_static'] }}">static</template>
|
| + <template if="{{ function['is_const'] }}">const</template>
|
| + {{ kind }}
|
| + </div>
|
| </div>
|
| - <div class="panel-body">
|
| - <div>
|
| - <code-ref ref="{{ function['code'] }}"></code-ref>
|
| - <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref>
|
| + <template if="{{ function['parent'] != null }}">
|
| + <div class="memberItem">
|
| + <div class="memberName">parent function</div>
|
| + <div class="memberValue">
|
| + <function-ref ref="{{ function['parent'] }}"></function-ref>
|
| + </div>
|
| + </div>
|
| + </template>
|
| + <template if="{{ function['parent'] == null &&
|
| + function['class'] != null }}">
|
| + <div class="memberItem">
|
| + <div class="memberName">parent class</div>
|
| + <div class="memberValue">
|
| + <class-ref ref="{{ function['class'] }}"></class-ref>
|
| + </div>
|
| + </div>
|
| + </template>
|
| + <div class="memberItem">
|
| + <div class="memberName">script</div>
|
| + <div class="memberValue">
|
| + <script-ref ref="{{ function['script'] }}">
|
| + </script-ref>
|
| </div>
|
| - <table class="table table-hover">
|
| - <tbody>
|
| - <tr>
|
| - <td>static</td><td>{{ function['is_static'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Const</td><td>{{ function['is_const'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Optimizable</td><td>{{ function['is_optimizable'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Inlinable</td><td>{{ function['is_inlinable'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Kind</td><td>{{ function['kind'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Usage Count</td><td>{{ function['usage_counter'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Optimized Call Site Count</td><td>{{ function['optimized_call_site_count'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| </div>
|
| - </div>
|
| +
|
| + <div class="memberItem"> </div>
|
| +
|
| + <template if="{{ function['code'] != null }}">
|
| + <div class="memberItem">
|
| + <div class="memberName">optimized code</div>
|
| + <div class="memberValue">
|
| + <code-ref ref="{{ function['code'] }}"></code-ref>
|
| + </div>
|
| + </div>
|
| + </template>
|
| + <template if="{{ function['unoptimized_code'] != null }}">
|
| + <div class="memberItem">
|
| + <div class="memberName">unoptimized code</div>
|
| + <div class="memberValue">
|
| + <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref>
|
| + </div>
|
| + <div class="memberValue">
|
| + <span title="This count is used to determine when a function will be optimized. It is a combination of call counts and other factors.">
|
| + (usage count: {{ function['usage_counter'] }})
|
| + </span>
|
| + </div>
|
| + </div>
|
| + </template>
|
| + <div class="memberItem">
|
| + <div class="memberName">deoptimizations</div>
|
| + <div class="memberValue">{{ function['deoptimizations'] }}</div>
|
| + </div>
|
| + <div class="memberItem">
|
| + <div class="memberName">optimizable</div>
|
| + <div class="memberValue">{{ function['is_optimizable'] }}</div>
|
| + </div>
|
| + <div class="memberItem">
|
| + <div class="memberName">inlinable</div>
|
| + <div class="memberValue">{{ function['is_inlinable'] }}</div>
|
| + </div>
|
| + <template if="{{ function.name != function.vmName }}">
|
| + <div class="memberItem">
|
| + <div class="memberName">vm name</div>
|
| + <div class="memberValue">{{ function.vmName }}</div>
|
| + </div>
|
| + </template>
|
| + </div>
|
| </div>
|
| - </div>
|
| </template>
|
| <script type="application/dart" src="function_view.dart"></script>
|
| </polymer-element>
|
|
|