anchor.diff:  }
   
   class AssetImage extends Component {
  -  AssetImage({ this.bundle, String name, this.size })
  -    : name = name, super(key: name);
  -
  +  AssetImage({ String name, this.bundle, this.size })
  +    : name = name,
  +      super(key: name);
  +
  +  final String name;
     final AssetBundle bundle;
  -  final String name;
     final Size size;
   
     Widget build() {
  
positive.code: }
  
  class DecoratedBox extends OneChildRenderObjectWrapper {
  
    DecoratedBox({ String key, this.decoration, Widget child })
      : super(key: key, child: child);
  
    RenderDecoratedBox get root => super.root;
    final BoxDecoration decoration;
  
    RenderDecoratedBox createNode() => new RenderDecoratedBox(decoration: decoration);
  
    void syncRenderObject(DecoratedBox old) {
      super.syncRenderObject(old);
      root.decoration = decoration;
    }
  
  }
  
  class CustomPaint extends OneChildRenderObjectWrapper {
  
    CustomPaint({ String key, this.callback, this.token, Widget child })
      : super(key: key, child: child);
  
    RenderCustomPaint get root => super.root;
    final CustomPaintCallback callback;
    final dynamic token;  // set this to be repainted automatically when the token changes
  
    RenderCustomPaint createNode() => new RenderCustomPaint(callback: callback);
  
    void syncRenderObject(CustomPaint old) {
      super.syncRenderObject(old);
  
negative.code: 
  class Image extends LeafRenderObjectWrapper {
    Image({ sky.Image image, this.size })
      : image = image,
        super(key: image.hashCode.toString()); // TODO(ianh): Find a way to uniquely identify the sky.Image rather than using hashCode, which could collide
  
    final sky.Image image;
    final Size size;
  
    RenderImage createNode() => new RenderImage(image, size);
    RenderImage get root => super.root;
  
    void syncRenderObject(Widget old) {
      super.syncRenderObject(old);
      root.image = image;
  