mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
30 lines
746 B
JavaScript
30 lines
746 B
JavaScript
![]() |
var cachePush = require('./cachePush'),
|
||
|
isNative = require('../lang/isNative');
|
||
|
|
||
|
/** Native method references. */
|
||
|
var Set = isNative(Set = global.Set) && Set;
|
||
|
|
||
|
/* Native method references for those with the same name as other `lodash` methods. */
|
||
|
var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* Creates a cache object to store unique values.
|
||
|
*
|
||
|
* @private
|
||
|
* @param {Array} [values] The values to cache.
|
||
|
*/
|
||
|
function SetCache(values) {
|
||
|
var length = values ? values.length : 0;
|
||
|
|
||
|
this.data = { 'hash': nativeCreate(null), 'set': new Set };
|
||
|
while (length--) {
|
||
|
this.push(values[length]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Add functions to the `Set` cache.
|
||
|
SetCache.prototype.push = cachePush;
|
||
|
|
||
|
module.exports = SetCache;
|