anchor.diff:  
   int _counter = 0;
   final String _idOffset = new DateTime.now().millisecondsSinceEpoch.toString();
  +String _nextId() => _idOffset + '-' + (_counter++).toString();
   
  +final Serialization _serialization = new Serialization();
   
   /**
    * XXX We don't use this when we compile to dart2js because
  
positive.code: library persistable_html;
  
  import 'dart:async';
  import 'dart:mirrors';
  import 'package:lawndart/lawndart.dart';
  import 'package:logging/logging.dart';
  
  final Logger log = new Logger("persistence");
  
  
negative.code:   }
    
    static _createAndPopulate(ClassMirror classMirror, String id, Map data) {
      InstanceMirror instanceMirror = classMirror.newInstance(const Symbol(''), []);
      Persistable object = instanceMirror.reflectee;
      object.id = id.toString();
      data.forEach((k, v) {
        Symbol fieldName = new Symbol(k);
        if (classMirror.declarations.containsKey(fieldName) &&
            classMirror.declarations[fieldName] is VariableMirror) {
          VariableMirror field = classMirror.declarations[fieldName];
          if (isFieldSerialized(field)) {
            v = _serialization.read(JSON.decode(v));
          }
          instanceMirror.setField(fieldName, v);
        }
      });
      return object;
    }
    
    static bool isFieldSerialized(VariableMirror field) {
      return field.metadata.any((InstanceMirror im) => im.reflectee == serialized);
    }
  
  }