code: function () {
                                  slotNext = slot.next;
                                  firstInSequence = slot.firstInSequence;
                                  lastInSequence = slot.lastInSequence;
  
                                  var slotPrev = slot.prev;
  
                                  mergeAdjacent = (typeof slot.index !== "number" && (firstInSequence || !slotPrev.item) && (lastInSequence || !slotNext.item));
  
                                  updateNewIndices(slot, -1);
                                  moveSlot(slot, slotMoveBefore, append, !append);
                                  updateNewIndices(slot, 1);
  
                                  if (mergeAdjacent) {
                                      splitSequence(slotPrev);
  
                                      if (!firstInSequence) {
                                          mergeSlotsBefore(slotPrev, slot);
                                      }
                                      if (!lastInSequence) {
                                          mergeSlotsAfter(slotNext, slot);
                                      }
                                  }
                              }
docs: updateSlots