anchor.diff:      assert(() {
         for (final property in properties.keys) {
           if (!_propertyTypes.containsKey(property)) {
  -          throw new AssertionFailure(
  -              'Component $_componentType doesn\'t have a property $property.');
  +          throw 'Component $_componentType doesn\'t have a property'
  +                ' ${MirrorSystem.getName(property)}.';
           }
         }
         return true;
  
positive.code:     component.internalUpdate();
    }
  
    String toString() => '<${_classMirror.reflectedType} key="$key"/>';
  }
  
  /// Factory generated by [componentFactory] method.
  
negative.code: 
    _VGenericComponentFactory(this._componentType) {
      _classMirror = reflectClass(_componentType);
      assert(() {
        final MethodMirror constructor =
            _classMirror.declarations[_classMirror.simpleName];
        if (constructor != null) {
          for (final p in constructor.parameters) {
            if (!p.isOptional) {
              throw 'Component constructors should have optional arguments only.\n'
                    '${MirrorSystem.getName(_classMirror.simpleName)} constructor '
                    'parameter ${MirrorSystem.getName(p.simpleName)} isn\'t an '
                    'optional.';
            }
          }
        }
        return true;
      }());
      //print(_classMirror.declarations);
      final publicVariables = _classMirror.declarations.values.where((d) {
        return !d.isPrivate && d is VariableMirror;
      });
  