anchor.diff:      if (first == null || second == null) {
         return (first == second);
       }
  -    
  -    // Loop through each field, checking equality of the values.
  -    var fieldNames = first.fieldNames.toList();
  -    var len = fieldNames.length;
  -    if (second.fieldNames.length != len) {
  +
  +    if (first.local.length != second.local.length) {
         return false;
       }
  +
  +    // Loop through each field, checking equality of the values.
  +    var fieldNames = first.fieldNames.toList(growable: false);
  +    var len = fieldNames.length;
       for (var i = 0; i < len; i++) {
         if (!second.containsKey(fieldNames[i])) {
           return false;
  
positive.code: 
    /// Determine whether this entity has a given field.
    bool containsKey(String key);
    
    /// Deprecated contains() method. Use [containsKey] instead.
    @deprecated
    bool contains(String key) => containsKey(key);
  
negative.code:     }
      return true;
    }
  
    /// Compute the deep hash code of an entity (slow).
    static int deepHashCode(Entity entity) {
      // Running total, kept under MAX_HASHCODE.
  