blob: ef5819ea7eecb00f0c9222994ed539257f668109 [file] [log] [blame]
<link rel="import" href="function_ref.html">
<link rel="import" href="instance_ref.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="nav_bar.html">
<polymer-element name="code-view" extends="observatory-element">
<template>
<link rel="stylesheet" href="css/shared.css">
<nav-bar>
<top-nav-menu></top-nav-menu>
<isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu>
<nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu>
<nav-refresh callback="{{ refresh }}"></nav-refresh>
</nav-bar>
<div class="content">
<h1>Code for {{ code.name }}</h1>
<div class="memberList">
<div class="memberItem">
<div class="memberName">kind</div>
<div class="memberValue">{{code.kind}}</div>
</div>
<div class="memberItem">
<div class="memberName">function</div>
<div class="memberValue">
<function-ref ref="{{code.function}}">
</function-ref>
</div>
</div>
<div class="memberItem">
<div class="memberName">Inclusive</div>
<div class="memberValue">{{ code.formattedInclusiveTicks }}</div>
</div>
<div class="memberItem">
<div class="memberName">Exclusive</div>
<div class="memberValue">{{ code.formattedExclusiveTicks }}</div>
</div>
<div class="memberItem">
<div class="memberName">Constant object pool</div>
<div class="memberValue">
<instance-ref ref="{{ code.objectPool }}"></instance-ref>
</div>
</div>
</div>
</div>
<hr>
<div class="content">
<template if="{{ code.hasDisassembly }}">
<div class="flex-row">
<div class="flex-item-fixed-2-12 memberHeader">Inclusive</div>
<div class="flex-item-fixed-2-12 memberHeader">Exclusive</div>
<div class="flex-item-fixed-2-12 memberHeader">Address</div>
<div class="flex-item-fixed-6-12 memberHeader">Disassembly</div>
</div>
</template>
<template repeat="{{ instruction in code.instructions }}">
<div class="flex-row">
<div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedInclusive(code) }}</div>
<div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedExclusive(code) }}</div>
<div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedAddress() }}</div>
<div class="flex-item-fixed-6-12 monospace">{{ instruction.human }}</div>
</div>
</template>
</div>
</template>
<script type="application/dart" src="code_view.dart"></script>
</polymer-element>