|  | var memoize = require('./memoize'); | 
|  |  | 
|  | /** Used as the maximum memoize cache size. */ | 
|  | var MAX_MEMOIZE_SIZE = 500; | 
|  |  | 
|  | /** | 
|  | * A specialized version of `_.memoize` which clears the memoized function's | 
|  | * cache when it exceeds `MAX_MEMOIZE_SIZE`. | 
|  | * | 
|  | * @private | 
|  | * @param {Function} func The function to have its output memoized. | 
|  | * @returns {Function} Returns the new memoized function. | 
|  | */ | 
|  | function memoizeCapped(func) { | 
|  | var result = memoize(func, function(key) { | 
|  | if (cache.size === MAX_MEMOIZE_SIZE) { | 
|  | cache.clear(); | 
|  | } | 
|  | return key; | 
|  | }); | 
|  |  | 
|  | var cache = result.cache; | 
|  | return result; | 
|  | } | 
|  |  | 
|  | module.exports = memoizeCapped; |