anchor.diff:    void _updateExplicitChildren(List<VNode> a, List<VNode> b, Context context) {
       var aLength = a.length;
       var bLength = b.length;
  -    assert(() {
  -      for (var i = 0; i < a.length; i++) {
  -        if (a[i].key == null) {
  -          throw new AssertionFailure(
  -              'All children inside of the Virtual DOM Node should have '
  -              'either explicit, or implicit keys.\n'
  -              'Child at position old:0 has explicit key ${a[0]}\n'
  -              'Child at position old:$i has implicit key\n'
  -              'Old children: $a\n'
  -              'New children: $b');
  -        }
  -      }
  -      for (var i = 0; i < b.length; i++) {
  -        if (b[i].key == null) {
  -          throw new AssertionFailure(
  -              'All children inside of the Virtual DOM Node should have '
  -              'either explicit, or implicit keys.\n'
  -              'Child at position old:0 has explicit key ${a[0]}\n'
  -              'Child at position new:$i has implicit key\n'
  -              'Old children: $a\n'
  -              'New children: $b');
  -        }
  -      }
  -      return true;
  -    }());
   
       final minLength = aLength < bLength ? aLength : bLength;
   
  
positive.code:     assert(() {
        if (children.isNotEmpty) {
          final key = children[0].key;
          for (var i = 0; i < children.length; i++) {
            if ((key == null && children[i].key != null) ||
                (key != null && children[i].key == null)) {
              throw new AssertionFailure(
  
negative.code:       if (b == null || b.isEmpty) {
          // when [b] is empty, it means that all childrens from list [a] were
          // removed
          for (var i = 0; i < a.length; i++) {
            removeChild(a[i], context);
          }
  