| var ListCache = require('./_ListCache'), | |
|     Map = require('./_Map'), | |
|     MapCache = require('./_MapCache'); | |
| 
 | |
| /** Used as the size to enable large array optimizations. */ | |
| var LARGE_ARRAY_SIZE = 200; | |
| 
 | |
| /** | |
|  * Sets the stack `key` to `value`. | |
|  * | |
|  * @private | |
|  * @name set | |
|  * @memberOf Stack | |
|  * @param {string} key The key of the value to set. | |
|  * @param {*} value The value to set. | |
|  * @returns {Object} Returns the stack cache instance. | |
|  */ | |
| function stackSet(key, value) { | |
|   var data = this.__data__; | |
|   if (data instanceof ListCache) { | |
|     var pairs = data.__data__; | |
|     if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { | |
|       pairs.push([key, value]); | |
|       this.size = ++data.size; | |
|       return this; | |
|     } | |
|     data = this.__data__ = new MapCache(pairs); | |
|   } | |
|   data.set(key, value); | |
|   this.size = data.size; | |
|   return this; | |
| } | |
| 
 | |
| module.exports = stackSet;
 |