|
|
|
var stackClear = require('./_stackClear'),
|
|
|
|
stackDelete = require('./_stackDelete'),
|
|
|
|
stackGet = require('./_stackGet'),
|
|
|
|
stackHas = require('./_stackHas'),
|
|
|
|
stackSet = require('./_stackSet');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates a stack cache object to store key-value pairs.
|
|
|
|
*
|
|
|
|
* @private
|
|
|
|
* @constructor
|
|
|
|
* @param {Array} [values] The values to cache.
|
|
|
|
*/
|
|
|
|
function Stack(values) {
|
|
|
|
var index = -1,
|
|
|
|
length = values ? values.length : 0;
|
|
|
|
|
|
|
|
this.clear();
|
|
|
|
while (++index < length) {
|
|
|
|
var entry = values[index];
|
|
|
|
this.set(entry[0], entry[1]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Add methods to `Stack`.
|
|
|
|
Stack.prototype.clear = stackClear;
|
|
|
|
Stack.prototype['delete'] = stackDelete;
|
|
|
|
Stack.prototype.get = stackGet;
|
|
|
|
Stack.prototype.has = stackHas;
|
|
|
|
Stack.prototype.set = stackSet;
|
|
|
|
|
|
|
|
module.exports = Stack;
|