1 line
9.1 KiB
JSON
1 line
9.1 KiB
JSON
|
{"ast":null,"code":"var Entry = function () {\n function Entry(val) {\n this.value = val;\n }\n\n return Entry;\n}();\n\nexport { Entry };\n\nvar LinkedList = function () {\n function LinkedList() {\n this._len = 0;\n }\n\n LinkedList.prototype.insert = function (val) {\n var entry = new Entry(val);\n this.insertEntry(entry);\n return entry;\n };\n\n LinkedList.prototype.insertEntry = function (entry) {\n if (!this.head) {\n this.head = this.tail = entry;\n } else {\n this.tail.next = entry;\n entry.prev = this.tail;\n entry.next = null;\n this.tail = entry;\n }\n\n this._len++;\n };\n\n LinkedList.prototype.remove = function (entry) {\n var prev = entry.prev;\n var next = entry.next;\n\n if (prev) {\n prev.next = next;\n } else {\n this.head = next;\n }\n\n if (next) {\n next.prev = prev;\n } else {\n this.tail = prev;\n }\n\n entry.next = entry.prev = null;\n this._len--;\n };\n\n LinkedList.prototype.len = function () {\n return this._len;\n };\n\n LinkedList.prototype.clear = function () {\n this.head = this.tail = null;\n this._len = 0;\n };\n\n return LinkedList;\n}();\n\nexport { LinkedList };\n\nvar LRU = function () {\n function LRU(maxSize) {\n this._list = new LinkedList();\n this._maxSize = 10;\n this._map = {};\n this._maxSize = maxSize;\n }\n\n LRU.prototype.put = function (key, value) {\n var list = this._list;\n var map = this._map;\n var removed = null;\n\n if (map[key] == null) {\n var len = list.len();\n var entry = this._lastRemovedEntry;\n\n if (len >= this._maxSize && len > 0) {\n var leastUsedEntry = list.head;\n list.remove(leastUsedEntry);\n delete map[leastUsedEntry.key];\n removed = leastUsedEntry.value;\n this._lastRemovedEntry = leastUsedEntry;\n }\n\n if (entry) {\n entry.value = value;\n } else {\n entry = new Entry(value);\n }\n\n entry.key = key;\n list.insertEntry(entry);\n map[key] = entry;\n }\n\n return removed;\n };\n\n LRU.prototype.get = function (key) {\n var entry = this._map[key];\n var list = this._list;\n\n if (entry != null) {\n if (entry !== list.tail) {\n list.remove(entry);\n list.insertEntry(entry);\n }\n\n return entry.value;\n }\n };\n\n LRU.prototype.clear = function () {\n this._list.clear();\n\n this._map = {};\n };\n\n LRU.prototype.len = function () {\n return this._list.len();\n };\n\n return LRU;\n}();\n\nexport default LRU;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/zrender/lib/core/LRU.js"],"names":["Entry","val","value","LinkedList","_len","prototype","insert","entry","insertEntry","head","tail","next","prev","remove","len","clear","LRU","maxSize","_list","_maxSize","_map","put","key","list","map","removed","_lastRemovedEntry","leastUsedEntry","get"],"mappings":"AAAA,IAAIA,KAAK,GAAI,YAAY;AACrB,WAASA,KAAT,CAAeC,GAAf,EAAoB;AAChB,SAAKC,KAAL,GAAaD,GAAb;AACH;;AACD,SAAOD,KAAP;AACH,CALY,EAAb;;AAMA,SAASA,KAAT;;AACA,IAAIG,UAAU,GAAI,YAAY;AAC1B,WAASA,UAAT,GAAsB;AAClB,SAAKC,IAAL,GAAY,CAAZ;AACH;;AACDD,EAAAA,UAAU,CAACE,SAAX,CAAqBC,MAArB,GAA8B,UAAUL,GAAV,EAAe;AACzC,QAAIM,KAAK,GAAG,IAAIP,KAAJ,CAAUC,GAAV,CAAZ;AACA,SAAKO,WAAL,CAAiBD,KAAjB;AACA,WAAOA,KAAP;AACH,GAJD;;AAKAJ,EAAAA,UAAU,CAACE,SAAX,CAAqBG,WAArB,GAAmC,UAAUD,KAAV,EAAiB;AAChD,QAAI,CAAC,KAAKE,IAAV,EAAgB;AACZ,WAAKA,IAAL,GAAY,KAAKC,IAAL,GAAYH,KAAxB;AACH,KAFD,MAGK;AACD,WAAKG,IAAL,CAAUC,IAAV,GAAiBJ,KAAjB;AACAA,MAAAA,KAAK,CAACK,IAAN,GAAa,KAAKF,IAAlB;AACAH,MAAAA,KAAK,CAACI,IAAN,GAAa,IAAb;AACA,WAAKD,IAAL,GAAYH,KAAZ;AACH;;AACD,SAAKH,IAAL;AACH,GAXD;;AAYAD,EAAAA,UAAU,CAACE,SAAX,CAAqBQ,MAArB,GAA8B,UAAUN,KAAV,EAAiB;AAC3C,QAAIK,IAAI,GAAGL,KAAK,CAACK,IAAjB;AACA,QAAID,IAAI,GAAGJ,KAAK,CAACI,IAAjB;;AACA,QAAIC,IAAJ,EAAU;AACNA,MAAAA,IAAI,CAACD,IAAL,GAAYA,IAAZ;AACH,KAFD,MAGK;AACD,WAAKF,IAAL,GAAYE,IAAZ;AACH;;AACD,QAAIA,IAAJ,EAAU;AACNA,MAAAA,
|