Blame view

node_modules/cyclist/index.js 697 Bytes
2a09d1a4   liuqimichale   添加宜春 天水 宣化
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
  var ensureTwoPower = 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 = ensureTwoPower(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;