text: /* */ 
  'use strict';
  
  // Simple FIFO queue implementation to avoid having to do shift()
  // on an array, which is slow.
  
  function Queue() {
    this.length = 0;
  }
  
  Queue.prototype.push = function (item) {
    var node = {item: item};
    if (this.last) {
      this.last = this.last.next = node;
    } else {
      this.last = this.first = node;
    }
    this.length++;
  };
  
  Queue.prototype.shift = function () {
    var node = this.first;
    if (node) {
      this.first = node.next;
      if (!(--this.length)) {
        this.last = undefined;
      }
      return node.item;
    }
  };
  
  Queue.prototype.slice = function (start, end) {
    start = typeof start === 'undefined' ? 0 : start;
    end = typeof end === 'undefined' ? Infinity : end;
  
    var output = [];
  
    var i = 0;
    for (var node = this.first; node; node = node.next) {
      if (--end < 0) {
        break;
      } else if (++i > start) {
        output.push(node.item);
      }
    }
    return output;
  }
  
  module.exports = Queue;
  