anchor.diff:          if (aNode.key == bNode.key) {
             var modified = aNode.update(bNode, context);
           } else {
  -          aNode.dispose(context);
  -          inject(bNode, parent, context);
  +          parent.removeChild(aNode, context);
  +          parent.insertBefore(bNode, null, context);
           }
         } else if (a.length == 1) {
           // fast path when [a] have 1 child
  
positive.code:             unchangedPosition = i;
              break;
            } else {
              injectBefore(bNode, parent, aNode.ref, context);
            }
          }
  
          if (unchangedPosition != -1) {
            for (var i = unchangedPosition + 1; i < b.length; i++) {
              inject(b[i], parent, context);
            }
            aNode.update(b[unchangedPosition], context);
          } else {
            aNode.dispose(context);
          }
        } else if (b.length == 1) {
          // fast path when [b] have 1 child
  
negative.code:             final node = b[pos];
              final nextPos = pos + 1;
              final next = nextPos < b.length ? b[nextPos].ref : null;
              parent.insertBefore(node, next, context);
            }
          }
        }
  