Code coverage report for lib/_linklist.js

Statements: 100% (32 / 32)      Branches: 100% (6 / 6)      Functions: 100% (6 / 6)      Lines: 100% (31 / 31)      Ignored: none     

All files » lib/ » _linklist.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60    946 11358 11358   946       946 6865 5197   946       946 4908 4908 4908   946       946 41253 27616     41253 27616     41253 41253   946       946 18334 18334 18334 18334 18334   946     946 24010   946      
(function () { 'use strict';
 
function init(list) {
  list._idleNext = list;
  list._idlePrev = list;
}
exports.init = init;
 
 
// show the most idle item
function peek(list) {
  if (list._idlePrev == list) return null;
  return list._idlePrev;
}
exports.peek = peek;
 
 
// remove the most idle item from the list
function shift(list) {
  var first = list._idlePrev;
  remove(first);
  return first;
}
exports.shift = shift;
 
 
// remove a item from its list
function remove(item) {
  if (item._idleNext) {
    item._idleNext._idlePrev = item._idlePrev;
  }
 
  if (item._idlePrev) {
    item._idlePrev._idleNext = item._idleNext;
  }
 
  item._idleNext = null;
  item._idlePrev = null;
}
exports.remove = remove;
 
 
// remove a item from its list and place at the end.
function append(list, item) {
  remove(item);
  item._idleNext = list._idleNext;
  list._idleNext._idlePrev = item;
  item._idlePrev = list;
  list._idleNext = item;
}
exports.append = append;
 
 
function isEmpty(list) {
  return list._idleNext === list;
}
exports.isEmpty = isEmpty;
 
}());