You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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
|