| Index: sky/framework/fn.dart | 
| diff --git a/sky/framework/fn.dart b/sky/framework/fn.dart | 
| index 380dc52ebf9a37f6ea68ae70cf97700745b7e5dc..06853293f72cf3e96ffc5fc26815178110e96386 100644 | 
| --- a/sky/framework/fn.dart | 
| +++ b/sky/framework/fn.dart | 
| @@ -244,7 +244,7 @@ abstract class Element extends Node { | 
| Element oldElement = old as Element; | 
|  | 
| if (oldElement == null) { | 
| -      // print("...no oldElement, initial render"); | 
| +      // print("...no oldElement, initial build"); | 
|  | 
| _root = sky.document.createElement(_tagName); | 
| _parentInsertBefore(host, _root, insertBefore); | 
| @@ -502,21 +502,21 @@ class Anchor extends Element { | 
| } | 
|  | 
| List<Component> _dirtyComponents = new List<Component>(); | 
| -bool _renderScheduled = false; | 
| +bool _buildScheduled = false; | 
| bool _inRenderDirtyComponents = false; | 
|  | 
| -void _renderDirtyComponents() { | 
| +void _buildDirtyComponents() { | 
| try { | 
| _inRenderDirtyComponents = true; | 
| Stopwatch sw = new Stopwatch()..start(); | 
|  | 
| _dirtyComponents.sort((a, b) => a._order - b._order); | 
| for (var comp in _dirtyComponents) { | 
| -      comp._renderIfDirty(); | 
| +      comp._buildIfDirty(); | 
| } | 
|  | 
| _dirtyComponents.clear(); | 
| -    _renderScheduled = false; | 
| +    _buildScheduled = false; | 
|  | 
| sw.stop(); | 
| if (_shouldLogRenderDuration) | 
| @@ -530,15 +530,15 @@ void _scheduleComponentForRender(Component c) { | 
| assert(!_inRenderDirtyComponents); | 
| _dirtyComponents.add(c); | 
|  | 
| -  if (!_renderScheduled) { | 
| -    _renderScheduled = true; | 
| -    new Future.microtask(_renderDirtyComponents); | 
| +  if (!_buildScheduled) { | 
| +    _buildScheduled = true; | 
| +    new Future.microtask(_buildDirtyComponents); | 
| } | 
| } | 
|  | 
| abstract class Component extends Node { | 
| -  bool _dirty = true; // components begin dirty because they haven't rendered. | 
| -  Node _rendered = null; | 
| +  bool _dirty = true; // components begin dirty because they haven't built. | 
| +  Node _vdom = null; | 
| bool _removed = false; | 
| final int _order; | 
| static int _currentOrder = 0; | 
| @@ -554,10 +554,10 @@ abstract class Component extends Node { | 
| void didUnmount() {} | 
|  | 
| void _remove() { | 
| -    assert(_rendered != null); | 
| +    assert(_vdom != null); | 
| assert(_root != null); | 
| -    _rendered._remove(); | 
| -    _rendered = null; | 
| +    _vdom._remove(); | 
| +    _vdom = null; | 
| _root = null; | 
| _removed = true; | 
| didUnmount(); | 
| @@ -571,89 +571,89 @@ abstract class Component extends Node { | 
| Component oldComponent = old as Component; | 
|  | 
| if (oldComponent == null || oldComponent == this) { | 
| -      _renderInternal(host, insertBefore); | 
| +      _buildInternal(host, insertBefore); | 
| return false; | 
| } | 
|  | 
| assert(oldComponent != null); | 
| assert(_dirty); | 
| -    assert(_rendered == null); | 
| +    assert(_vdom == null); | 
|  | 
| if (oldComponent._stateful) { | 
| -      _stateful = false; // prevent iloop from _renderInternal below. | 
| +      _stateful = false; // prevent iloop from _buildInternal below. | 
|  | 
| reflect.copyPublicFields(this, oldComponent); | 
|  | 
| oldComponent._dirty = true; | 
| _dirty = false; | 
|  | 
| -      oldComponent._renderInternal(host, insertBefore); | 
| +      oldComponent._buildInternal(host, insertBefore); | 
| return true;  // Must retain old component | 
| } | 
|  | 
| -    _rendered = oldComponent._rendered; | 
| -    _renderInternal(host, insertBefore); | 
| +    _vdom = oldComponent._vdom; | 
| +    _buildInternal(host, insertBefore); | 
| return false; | 
| } | 
|  | 
| -  void _renderInternal(sky.Node host, sky.Node insertBefore) { | 
| +  void _buildInternal(sky.Node host, sky.Node insertBefore) { | 
| if (!_dirty) { | 
| -      assert(_rendered != null); | 
| +      assert(_vdom != null); | 
| return; | 
| } | 
|  | 
| -    var oldRendered = _rendered; | 
| +    var oldRendered = _vdom; | 
| bool mounting = oldRendered == null; | 
| int lastOrder = _currentOrder; | 
| _currentOrder = _order; | 
| _currentlyRendering = this; | 
| -    _rendered = render(); | 
| +    _vdom = build(); | 
| _currentlyRendering = null; | 
| _currentOrder = lastOrder; | 
|  | 
| -    _rendered.events.addAll(events); | 
| +    _vdom.events.addAll(events); | 
|  | 
| _dirty = false; | 
|  | 
| // TODO(rafaelw): This eagerly removes the old DOM. It may be that a | 
| -    // new component was rendered that could re-use some of it. Consider | 
| +    // new component was built that could re-use some of it. Consider | 
| // syncing the new VDOM against the old one. | 
| if (oldRendered != null && | 
| -        _rendered.runtimeType != oldRendered.runtimeType) { | 
| +        _vdom.runtimeType != oldRendered.runtimeType) { | 
| oldRendered._remove(); | 
| oldRendered = null; | 
| } | 
|  | 
| -    if (_rendered._sync(oldRendered, host, insertBefore)) { | 
| -      _rendered = oldRendered; // retain stateful component | 
| +    if (_vdom._sync(oldRendered, host, insertBefore)) { | 
| +      _vdom = oldRendered; // retain stateful component | 
| } | 
| -    _root = _rendered._root; | 
| -    assert(_rendered._root is sky.Node); | 
| +    _root = _vdom._root; | 
| +    assert(_vdom._root is sky.Node); | 
|  | 
| if (mounting) { | 
| didMount(); | 
| } | 
| } | 
|  | 
| -  void _renderIfDirty() { | 
| +  void _buildIfDirty() { | 
| if (_removed) | 
| return; | 
|  | 
| -    assert(_rendered != null); | 
| +    assert(_vdom != null); | 
|  | 
| -    var rendered = _rendered; | 
| -    while (rendered is Component) { | 
| -      rendered = rendered._rendered; | 
| +    var vdom = _vdom; | 
| +    while (vdom is Component) { | 
| +      vdom = vdom._vdom; | 
| } | 
|  | 
| -    assert(rendered._root != null); | 
| -    sky.Node root = rendered._root; | 
| +    assert(vdom._root != null); | 
| +    sky.Node root = vdom._root; | 
|  | 
| -    _renderInternal(root.parentNode, root.nextSibling); | 
| +    _buildInternal(root.parentNode, root.nextSibling); | 
| } | 
|  | 
| void setState(Function fn()) { | 
| -    assert(_rendered != null || _removed); // cannot setState before mounting. | 
| +    assert(_vdom != null || _removed); // cannot setState before mounting. | 
| _stateful = true; | 
| fn(); | 
| if (!_removed && _currentlyRendering != this) { | 
| @@ -662,7 +662,7 @@ abstract class Component extends Node { | 
| } | 
| } | 
|  | 
| -  Node render(); | 
| +  Node build(); | 
| } | 
|  | 
| abstract class App extends Component { | 
| @@ -679,7 +679,7 @@ abstract class App extends Component { | 
|  | 
| sw.stop(); | 
| if (_shouldLogRenderDuration) | 
| -        print("Initial render: ${sw.elapsedMicroseconds} microseconds"); | 
| +        print("Initial build: ${sw.elapsedMicroseconds} microseconds"); | 
| }); | 
| } | 
| } | 
|  |