anchor.diff:        if (b == null || b.isEmpty) {
           // when [b] is empty, it means that all childrens from list [a] were
           // removed
  -        assert(() {
  -          final key = a[0].key;
  -          for (var i = 0; i < a.length; i++) {
  -            if ((key == null && a[i].key != null) ||
  -                (key != null && 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 key $key\n'
  -                  'Child at position old:$i has key ${a[i].key}\n'
  -                  'Old children: $a\n'
  -                  'New children: $b');
  -            }
  -          }
  -          return true;
  -        }());
  -
           for (var i = 0; i < a.length; i++) {
             removeChild(a[i], context);
           }
  
positive.code:           // both [a] and [b] have more then 1 child, so we should handle
            // more complex situations with inserting/removing and repositioning
            // childrens.
            if (a.first.key == null) {
              return _updateImplicitChildren(a, b, context);
            }
  
negative.code:   void _updateImplicitChildren(List<VNode> a, List<VNode> b, Context context) {
      var aLength = a.length;
      var bLength = b.length;
  
      final minLength = aLength < bLength ? aLength : bLength;
  
  