code: function LruMap(capacity) {
    if (!isFinite(capacity) || Math.floor(capacity) !== capacity || capacity < 0) {
      throw new Error('LruMap: invalid capacity');
    }
    this._capacity = capacity;
  
    // Keys and values are stored in circular arrays ordered by decreasing age.
    // Start is the index of the oldest key/value and size is the number of valid
    // key/values; the region containing valid keys/values may wrap around.
    this._keys = new Array(this._capacity);
    this._values = new Array(this._capacity);
    this._start = 0;
    this._size = 0;
  }
docs: An LruMap holds up to a maximum number of key-value pairs, ordered by their time of insertion. When the addition of a key-value pair would cause the capacity to be exceeded, the oldest key-value pair in the set is evicted. As a special case, an LruMap with zero capacity always rejects the insertion of a key-value pair.  Keys must implement hash() and equals(). Note that the implementation doesn't currently use hash(), but a future version might.