Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 22x 22x 52x 52x 52x 52x 52x 22x 22x 19340x 19340x 17610x 19340x 22x 22x 52855x 52855x 52301x 52301x 52855x 52855x 52301x 52301x 52855x 52855x 52855x 52855x 22x 22x 36885x 36885x 33945x 33945x 36885x 36885x 36885x 36885x 36885x 36885x 36885x 36885x 36885x 36885x 22x 871x 871x 871x 22x 22x 22x 22x 22x 22x 22x 22x | 'use strict'; function init(list) { list._idleNext = list; list._idlePrev = list; return list; } // Show the most idle item. function peek(list) { if (list._idlePrev === list) return null; return list._idlePrev; } // Remove an 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; } // Remove an item from its list and place at the end. function append(list, item) { if (item._idleNext || item._idlePrev) { remove(item); } // Items are linked with _idleNext -> (older) and _idlePrev -> (newer). // Note: This linkage (next being older) may seem counter-intuitive at first. item._idleNext = list._idleNext; item._idlePrev = list; // The list _idleNext points to tail (newest) and _idlePrev to head (oldest). list._idleNext._idlePrev = item; list._idleNext = item; } function isEmpty(list) { return list._idleNext === list; } module.exports = { init, peek, remove, append, isEmpty }; |