"use strict";window.createLRU=function(r){var e=r.max;if(!(Number.isInteger(e)&&e>0))throw new TypeError("`max` must be a positive integer");var n=0,i=0,t=0,a=[],o=r.onEviction,l=new Map,f=new Array(e).fill(void 0),u=new Array(e).fill(void 0),v=new Array(e).fill(0),s=new Array(e).fill(0),p=function(r,e){if(r!==t){var n=v[r],a=s[r];r===i?i=n:("get"===e||0!==a)&&(v[a]=n),0!==n&&(s[n]=a),v[t]=r,s[r]=t,v[r]=0,t=r}},c=function(){var r=i,e=f[r];return null==o||o(e,u[r]),l.delete(e),f[r]=void 0,u[r]=void 0,0!==(i=v[r])&&(s[i]=0),0===--n&&(i=t=0),a.push(r),r};return{set:function(r,v){if(void 0!==r){var s=l.get(r);void 0===s?(s=n===e?c():a.length>0?a.pop():n,l.set(r,s),f[s]=r,n++):null==o||o(r,u[s]),u[s]=v,1===n?i=t=s:p(s,"set")}},get:function(r){var e=l.get(r);if(void 0!==e)return e!==t&&p(e,"get"),u[e]},peek:function(r){var e=l.get(r);return void 0!==e?u[e]:void 0},has:function(r){return l.has(r)},keys:function*(){for(var r=t,e=0;e0;)c(),e--},clear:function(){if("function"==typeof o)for(var r=i,e=0;e0))throw new TypeError("`max` must be a positive integer");if(r!==e){if(r=0;m--)y[m]=f[p],g[m]=u[p],h[m]=m+1,w[m]=m-1,l.set(y[m],m),p=s[p];i=0,t=c-1,n=c,f.length=r,u.length=r,v.length=r,s.length=r;for(var b=0;b