import MapCache from './MapCache.js' /** Used to stand-in for `undefined` hash values. */ const HASH_UNDEFINED = '__lodash_hash_undefined__' class SetCache { /** * Creates an array cache object to store unique values. * * @private * @constructor * @param {Array} [values] The values to cache. */ constructor(values) { let index = -1 const length = values == null ? 0 : values.length this.__data__ = new MapCache while (++index < length) { this.add(values[index]) } } /** * Adds `value` to the array cache. * * @memberOf SetCache * @alias push * @param {*} value The value to cache. * @returns {Object} Returns the cache instance. */ add(value) { this.__data__.set(value, HASH_UNDEFINED) return this } /** * Checks if `value` is in the array cache. * * @memberOf SetCache * @param {*} value The value to search for. * @returns {number} Returns `true` if `value` is found, else `false`. */ has(value) { return this.__data__.has(value) } } SetCache.prototype.push = SetCache.prototype.add export default SetCache