Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / _memoizeCapped.js
1 var memoize = require('./memoize');
2
3 /** Used as the maximum memoize cache size. */
4 var MAX_MEMOIZE_SIZE = 500;
5
6 /**
7  * A specialized version of `_.memoize` which clears the memoized function's
8  * cache when it exceeds `MAX_MEMOIZE_SIZE`.
9  *
10  * @private
11  * @param {Function} func The function to have its output memoized.
12  * @returns {Function} Returns the new memoized function.
13  */
14 function memoizeCapped(func) {
15   var result = memoize(func, function(key) {
16     if (cache.size === MAX_MEMOIZE_SIZE) {
17       cache.clear();
18     }
19     return key;
20   });
21
22   var cache = result.cache;
23   return result;
24 }
25
26 module.exports = memoizeCapped;