benchmarks/scenarios/ember.js
function advanceToKey(key) {
      var seek = currentMorph;

      while (seek.key !== key) {
        candidates[seek.key] = seek;
        seek = seek.nextMorph;
      }

      currentMorph = seek.nextMorph;
      return seek;
    }
function advanceToKey(key) {
      var seek = currentMorph;

      while (seek.key !== key) {
        candidates[seek.key] = seek;
        seek = seek.nextMorph;
      }

      currentMorph = seek.nextMorph;
      return seek;
    }
function advanceToKey ( key ) { var seek = currentMorph ; while ( seek . key !== key ) { candidates [ seek . key ] = seek ; seek = seek . nextMorph ; } currentMorph = seek . nextMorph ; return seek ; }
Advances the currentMorph pointer to the morph in the previously-rendered list that matches the yielded key. While doing so, it marks any morphs that it advances past as candidates for deletion. Assuming those morphs are not yielded in later, they will be removed in the prune step during cleanup. Note that this helper function assumes that the morph being seeked to is guaranteed to exist in the previous MorphList; if this is called and the morph does not exist, it will result in an infinite loop
Advances the currentMorph pointer to the morph in the previously - rendered list that matches the yielded key . While doing so it marks any morphs that it advances past as candidates for deletion . Assuming those morphs are not yielded in later they will be removed in the prune step during cleanup . Note that this helper function assumes that the morph being seeked to is guaranteed to exist in the previous MorphList ; if this is called and the morph does not exist it will result in an infinite loop