| var twoify = function (n) { | 
|   if (n && !(n & (n - 1))) return n | 
|   var p = 1 | 
|   while (p < n) p <<= 1 | 
|   return p | 
| } | 
|   | 
| var Cyclist = function (size) { | 
|   if (!(this instanceof Cyclist)) return new Cyclist(size) | 
|   size = twoify(size) | 
|   this.mask = size - 1 | 
|   this.size = size | 
|   this.values = new Array(size) | 
| } | 
|   | 
| Cyclist.prototype.put = function (index, val) { | 
|   var pos = index & this.mask | 
|   this.values[pos] = val | 
|   return pos | 
| } | 
|   | 
| Cyclist.prototype.get = function (index) { | 
|   return this.values[index & this.mask] | 
| } | 
|   | 
| Cyclist.prototype.del = function (index) { | 
|   var pos = index & this.mask | 
|   var val = this.values[pos] | 
|   this.values[pos] = undefined | 
|   return val | 
| } | 
|   | 
| module.exports = Cyclist |