lru-memoize
Advanced tools
| {"/Users/erik/oss/lru-memoize/src/deepEquals.js":{"path":"/Users/erik/oss/lru-memoize/src/deepEquals.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"1":{"start":{"line":5,"column":14},"end":{"line":5,"column":268}},"2":{"start":{"line":5,"column":101},"end":{"line":5,"column":119}},"3":{"start":{"line":5,"column":141},"end":{"line":5,"column":266}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":29}},"5":{"start":{"line":8,"column":13},"end":{"line":10,"column":1}},"6":{"start":{"line":9,"column":2},"end":{"line":9,"column":59}},"7":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"8":{"start":{"line":14,"column":6},"end":{"line":14,"column":18}},"9":{"start":{"line":17,"column":4},"end":{"line":31,"column":5}},"10":{"start":{"line":18,"column":6},"end":{"line":20,"column":7}},"11":{"start":{"line":19,"column":8},"end":{"line":19,"column":21}},"12":{"start":{"line":23,"column":6},"end":{"line":27,"column":7}},"13":{"start":{"line":24,"column":8},"end":{"line":24,"column":42}},"14":{"start":{"line":26,"column":8},"end":{"line":26,"column":21}},"15":{"start":{"line":30,"column":6},"end":{"line":30,"column":18}},"16":{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},"17":{"start":{"line":34,"column":6},"end":{"line":34,"column":19}},"18":{"start":{"line":37,"column":4},"end":{"line":67,"column":5}},"19":{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},"20":{"start":{"line":39,"column":8},"end":{"line":39,"column":21}},"21":{"start":{"line":42,"column":20},"end":{"line":42,"column":35}},"22":{"start":{"line":43,"column":20},"end":{"line":43,"column":35}},"23":{"start":{"line":44,"column":6},"end":{"line":46,"column":7}},"24":{"start":{"line":45,"column":8},"end":{"line":45,"column":35}},"25":{"start":{"line":48,"column":18},"end":{"line":48,"column":37}},"26":{"start":{"line":49,"column":18},"end":{"line":49,"column":37}},"27":{"start":{"line":51,"column":6},"end":{"line":53,"column":7}},"28":{"start":{"line":52,"column":8},"end":{"line":52,"column":21}},"29":{"start":{"line":56,"column":28},"end":{"line":56,"column":55}},"30":{"start":{"line":59,"column":6},"end":{"line":63,"column":7}},"31":{"start":{"line":60,"column":8},"end":{"line":60,"column":107}},"32":{"start":{"line":62,"column":8},"end":{"line":62,"column":21}},"33":{"start":{"line":66,"column":6},"end":{"line":66,"column":18}},"34":{"start":{"line":68,"column":4},"end":{"line":68,"column":17}},"35":{"start":{"line":71,"column":2},"end":{"line":71,"column":14}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":84},"end":{"line":5,"column":85}},"loc":{"start":{"line":5,"column":99},"end":{"line":5,"column":121}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":124},"end":{"line":5,"column":125}},"loc":{"start":{"line":5,"column":139},"end":{"line":5,"column":268}},"line":5},"2":{"name":"hasOwn","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":28}},"loc":{"start":{"line":8,"column":42},"end":{"line":10,"column":1}},"line":8},"3":{"name":"deepEquals","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":19}},"loc":{"start":{"line":11,"column":41},"end":{"line":72,"column":1}},"line":11},"4":{"name":"deep","decl":{"start":{"line":12,"column":11},"end":{"line":12,"column":15}},"loc":{"start":{"line":12,"column":32},"end":{"line":69,"column":3}},"line":12},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":24},"end":{"line":23,"column":25}},"loc":{"start":{"line":23,"column":48},"end":{"line":25,"column":7}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":59,"column":23},"end":{"line":59,"column":24}},"loc":{"start":{"line":59,"column":39},"end":{"line":61,"column":7}},"line":59}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":14},"end":{"line":5,"column":268}},"type":"cond-expr","locations":[{"start":{"line":5,"column":84},"end":{"line":5,"column":121}},{"start":{"line":5,"column":124},"end":{"line":5,"column":268}}],"line":5},"1":{"loc":{"start":{"line":5,"column":14},"end":{"line":5,"column":81}},"type":"binary-expr","locations":[{"start":{"line":5,"column":14},"end":{"line":5,"column":42}},{"start":{"line":5,"column":46},"end":{"line":5,"column":81}}],"line":5},"2":{"loc":{"start":{"line":5,"column":148},"end":{"line":5,"column":265}},"type":"cond-expr","locations":[{"start":{"line":5,"column":244},"end":{"line":5,"column":252}},{"start":{"line":5,"column":255},"end":{"line":5,"column":265}}],"line":5},"3":{"loc":{"start":{"line":5,"column":148},"end":{"line":5,"column":241}},"type":"binary-expr","locations":[{"start":{"line":5,"column":148},"end":{"line":5,"column":151}},{"start":{"line":5,"column":155},"end":{"line":5,"column":183}},{"start":{"line":5,"column":187},"end":{"line":5,"column":213}},{"start":{"line":5,"column":217},"end":{"line":5,"column":241}}],"line":5},"4":{"loc":{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":15,"column":5}},{"start":{"line":13,"column":4},"end":{"line":15,"column":5}}],"line":13},"5":{"loc":{"start":{"line":17,"column":4},"end":{"line":31,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":31,"column":5}},{"start":{"line":17,"column":4},"end":{"line":31,"column":5}}],"line":17},"6":{"loc":{"start":{"line":18,"column":6},"end":{"line":20,"column":7}},"type":"if","locations":[{"start":{"line":18,"column":6},"end":{"line":20,"column":7}},{"start":{"line":18,"column":6},"end":{"line":20,"column":7}}],"line":18},"7":{"loc":{"start":{"line":18,"column":10},"end":{"line":18,"column":67}},"type":"binary-expr","locations":[{"start":{"line":18,"column":10},"end":{"line":18,"column":32}},{"start":{"line":18,"column":36},"end":{"line":18,"column":67}}],"line":18},"8":{"loc":{"start":{"line":23,"column":6},"end":{"line":27,"column":7}},"type":"if","locations":[{"start":{"line":23,"column":6},"end":{"line":27,"column":7}},{"start":{"line":23,"column":6},"end":{"line":27,"column":7}}],"line":23},"9":{"loc":{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":35,"column":5}},{"start":{"line":33,"column":4},"end":{"line":35,"column":5}}],"line":33},"10":{"loc":{"start":{"line":37,"column":4},"end":{"line":67,"column":5}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":67,"column":5}},{"start":{"line":37,"column":4},"end":{"line":67,"column":5}}],"line":37},"11":{"loc":{"start":{"line":37,"column":9},"end":{"line":37,"column":70}},"type":"cond-expr","locations":[{"start":{"line":37,"column":41},"end":{"line":37,"column":52}},{"start":{"line":37,"column":55},"end":{"line":37,"column":70}}],"line":37},"12":{"loc":{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},"type":"if","locations":[{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},{"start":{"line":38,"column":6},"end":{"line":40,"column":7}}],"line":38},"13":{"loc":{"start":{"line":38,"column":11},"end":{"line":38,"column":72}},"type":"cond-expr","locations":[{"start":{"line":38,"column":43},"end":{"line":38,"column":54}},{"start":{"line":38,"column":57},"end":{"line":38,"column":72}}],"line":38},"14":{"loc":{"start":{"line":44,"column":6},"end":{"line":46,"column":7}},"type":"if","locations":[{"start":{"line":44,"column":6},"end":{"line":46,"column":7}},{"start":{"line":44,"column":6},"end":{"line":46,"column":7}}],"line":44},"15":{"loc":{"start":{"line":44,"column":10},"end":{"line":44,"column":28}},"type":"binary-expr","locations":[{"start":{"line":44,"column":10},"end":{"line":44,"column":17}},{"start":{"line":44,"column":21},"end":{"line":44,"column":28}}],"line":44},"16":{"loc":{"start":{"line":51,"column":6},"end":{"line":53,"column":7}},"type":"if","locations":[{"start":{"line":51,"column":6},"end":{"line":53,"column":7}},{"start":{"line":51,"column":6},"end":{"line":53,"column":7}}],"line":51},"17":{"loc":{"start":{"line":56,"column":28},"end":{"line":56,"column":55}},"type":"cond-expr","locations":[{"start":{"line":56,"column":42},"end":{"line":56,"column":46}},{"start":{"line":56,"column":49},"end":{"line":56,"column":55}}],"line":56},"18":{"loc":{"start":{"line":59,"column":6},"end":{"line":63,"column":7}},"type":"if","locations":[{"start":{"line":59,"column":6},"end":{"line":63,"column":7}},{"start":{"line":59,"column":6},"end":{"line":63,"column":7}}],"line":59},"19":{"loc":{"start":{"line":60,"column":15},"end":{"line":60,"column":106}},"type":"binary-expr","locations":[{"start":{"line":60,"column":15},"end":{"line":60,"column":35}},{"start":{"line":60,"column":39},"end":{"line":60,"column":59}},{"start":{"line":60,"column":63},"end":{"line":60,"column":106}}],"line":60}},"s":{"0":1,"1":1,"2":42,"3":0,"4":1,"5":1,"6":36,"7":60,"8":24,"9":36,"10":8,"11":5,"12":3,"13":5,"14":2,"15":1,"16":28,"17":3,"18":25,"19":17,"20":2,"21":15,"22":15,"23":15,"24":2,"25":13,"26":13,"27":13,"28":2,"29":11,"30":11,"31":18,"32":5,"33":6,"34":8,"35":4},"f":{"0":42,"1":0,"2":36,"3":4,"4":60,"5":5,"6":18},"b":{"0":[1,0],"1":[1,1],"2":[0,0],"3":[0,0,0,0],"4":[24,36],"5":[8,28],"6":[5,3],"7":[8,5],"8":[2,1],"9":[3,25],"10":[17,8],"11":[0,25],"12":[2,15],"13":[0,17],"14":[2,13],"15":[15,14],"16":[2,11],"17":[11,0],"18":[5,6],"19":[18,18,17]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"cc1580100659a7e0897deed866b912e7e0506e2c","contentHash":"1b4195f8b911b2aa49bbdd44126f97cf_10.2.0"},"/Users/erik/oss/lru-memoize/src/memoize.js":{"path":"/Users/erik/oss/lru-memoize/src/memoize.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":26}},"2":{"start":{"line":6,"column":18},"end":{"line":6,"column":41}},"3":{"start":{"line":8,"column":19},"end":{"line":8,"column":54}},"4":{"start":{"line":10,"column":16},"end":{"line":10,"column":37}},"5":{"start":{"line":12,"column":17},"end":{"line":12,"column":50}},"6":{"start":{"line":14,"column":22},"end":{"line":14,"column":49}},"7":{"start":{"line":16,"column":23},"end":{"line":16,"column":62}},"8":{"start":{"line":18,"column":39},"end":{"line":18,"column":93}},"9":{"start":{"line":21,"column":2},"end":{"line":21,"column":102}},"10":{"start":{"line":26,"column":15},"end":{"line":26,"column":94}},"11":{"start":{"line":28,"column":2},"end":{"line":44,"column":4}},"12":{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},"13":{"start":{"line":33,"column":6},"end":{"line":33,"column":19}},"14":{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},"15":{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},"16":{"start":{"line":39,"column":8},"end":{"line":39,"column":21}},"17":{"start":{"line":43,"column":4},"end":{"line":43,"column":16}},"18":{"start":{"line":48,"column":14},"end":{"line":48,"column":15}},"19":{"start":{"line":49,"column":15},"end":{"line":51,"column":3}},"20":{"start":{"line":50,"column":4},"end":{"line":50,"column":29}},"21":{"start":{"line":52,"column":20},"end":{"line":52,"column":25}},"22":{"start":{"line":54,"column":2},"end":{"line":56,"column":3}},"23":{"start":{"line":55,"column":4},"end":{"line":55,"column":35}},"24":{"start":{"line":58,"column":2},"end":{"line":60,"column":3}},"25":{"start":{"line":59,"column":4},"end":{"line":59,"column":27}},"26":{"start":{"line":61,"column":2},"end":{"line":66,"column":3}},"27":{"start":{"line":62,"column":4},"end":{"line":62,"column":28}},"28":{"start":{"line":63,"column":9},"end":{"line":66,"column":3}},"29":{"start":{"line":65,"column":4},"end":{"line":65,"column":19}},"30":{"start":{"line":67,"column":2},"end":{"line":69,"column":3}},"31":{"start":{"line":68,"column":4},"end":{"line":68,"column":28}},"32":{"start":{"line":71,"column":14},"end":{"line":71,"column":69}},"33":{"start":{"line":73,"column":2},"end":{"line":86,"column":4}},"34":{"start":{"line":74,"column":4},"end":{"line":85,"column":6}},"35":{"start":{"line":75,"column":6},"end":{"line":77,"column":7}},"36":{"start":{"line":76,"column":8},"end":{"line":76,"column":39}},"37":{"start":{"line":79,"column":18},"end":{"line":79,"column":33}},"38":{"start":{"line":80,"column":6},"end":{"line":83,"column":7}},"39":{"start":{"line":81,"column":8},"end":{"line":81,"column":35}},"40":{"start":{"line":82,"column":8},"end":{"line":82,"column":31}},"41":{"start":{"line":84,"column":6},"end":{"line":84,"column":19}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":31}},"loc":{"start":{"line":18,"column":37},"end":{"line":18,"column":95}},"line":18},"1":{"name":"createCache","decl":{"start":{"line":20,"column":9},"end":{"line":20,"column":20}},"loc":{"start":{"line":20,"column":36},"end":{"line":22,"column":1}},"line":20},"2":{"name":"createEqualsFn","decl":{"start":{"line":24,"column":9},"end":{"line":24,"column":23}},"loc":{"start":{"line":24,"column":50},"end":{"line":45,"column":1}},"line":24},"3":{"name":"(anonymous_3)","decl":{"start":{"line":28,"column":9},"end":{"line":28,"column":10}},"loc":{"start":{"line":28,"column":35},"end":{"line":44,"column":3}},"line":28},"4":{"name":"memoize","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":16}},"loc":{"start":{"line":47,"column":19},"end":{"line":87,"column":1}},"line":47},"5":{"name":"equals","decl":{"start":{"line":49,"column":24},"end":{"line":49,"column":30}},"loc":{"start":{"line":49,"column":47},"end":{"line":51,"column":3}},"line":49},"6":{"name":"(anonymous_6)","decl":{"start":{"line":73,"column":9},"end":{"line":73,"column":10}},"loc":{"start":{"line":73,"column":23},"end":{"line":86,"column":3}},"line":73},"7":{"name":"(anonymous_7)","decl":{"start":{"line":74,"column":11},"end":{"line":74,"column":12}},"loc":{"start":{"line":74,"column":23},"end":{"line":85,"column":5}},"line":74}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":92}},"type":"cond-expr","locations":[{"start":{"line":18,"column":70},"end":{"line":18,"column":73}},{"start":{"line":18,"column":76},"end":{"line":18,"column":92}}],"line":18},"1":{"loc":{"start":{"line":18,"column":46},"end":{"line":18,"column":67}},"type":"binary-expr","locations":[{"start":{"line":18,"column":46},"end":{"line":18,"column":49}},{"start":{"line":18,"column":53},"end":{"line":18,"column":67}}],"line":18},"2":{"loc":{"start":{"line":21,"column":9},"end":{"line":21,"column":101}},"type":"cond-expr","locations":[{"start":{"line":21,"column":23},"end":{"line":21,"column":60}},{"start":{"line":21,"column":63},"end":{"line":21,"column":101}}],"line":21},"3":{"loc":{"start":{"line":26,"column":15},"end":{"line":26,"column":94}},"type":"cond-expr","locations":[{"start":{"line":26,"column":29},"end":{"line":26,"column":80}},{"start":{"line":26,"column":83},"end":{"line":26,"column":94}}],"line":26},"4":{"loc":{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":34,"column":5}},{"start":{"line":32,"column":4},"end":{"line":34,"column":5}}],"line":32},"5":{"loc":{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},"type":"if","locations":[{"start":{"line":38,"column":6},"end":{"line":40,"column":7}},{"start":{"line":38,"column":6},"end":{"line":40,"column":7}}],"line":38},"6":{"loc":{"start":{"line":58,"column":2},"end":{"line":60,"column":3}},"type":"if","locations":[{"start":{"line":58,"column":2},"end":{"line":60,"column":3}},{"start":{"line":58,"column":2},"end":{"line":60,"column":3}}],"line":58},"7":{"loc":{"start":{"line":61,"column":2},"end":{"line":66,"column":3}},"type":"if","locations":[{"start":{"line":61,"column":2},"end":{"line":66,"column":3}},{"start":{"line":61,"column":2},"end":{"line":66,"column":3}}],"line":61},"8":{"loc":{"start":{"line":63,"column":9},"end":{"line":66,"column":3}},"type":"if","locations":[{"start":{"line":63,"column":9},"end":{"line":66,"column":3}},{"start":{"line":63,"column":9},"end":{"line":66,"column":3}}],"line":63},"9":{"loc":{"start":{"line":67,"column":2},"end":{"line":69,"column":3}},"type":"if","locations":[{"start":{"line":67,"column":2},"end":{"line":69,"column":3}},{"start":{"line":67,"column":2},"end":{"line":69,"column":3}}],"line":67},"10":{"loc":{"start":{"line":80,"column":6},"end":{"line":83,"column":7}},"type":"if","locations":[{"start":{"line":80,"column":6},"end":{"line":83,"column":7}},{"start":{"line":80,"column":6},"end":{"line":83,"column":7}}],"line":80}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":3,"9":7,"10":7,"11":7,"12":19,"13":0,"14":19,"15":33,"16":12,"17":7,"18":7,"19":7,"20":43,"21":7,"22":7,"23":5,"24":7,"25":2,"26":7,"27":0,"28":7,"29":4,"30":7,"31":3,"32":7,"33":7,"34":7,"35":22,"36":66,"37":22,"38":22,"39":15,"40":15,"41":22},"f":{"0":3,"1":7,"2":7,"3":19,"4":7,"5":43,"6":7,"7":22},"b":{"0":[3,0],"1":[3,3],"2":[5,2],"3":[3,4],"4":[0,19],"5":[12,21],"6":[2,5],"7":[0,7],"8":[4,3],"9":[3,4],"10":[15,7]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"105bb6474657cbfe5bc14bb31a0d87b064889791","contentHash":"69d5c222ee847a0edf70c58eb1ee16ab_10.2.0"},"/Users/erik/oss/lru-memoize/src/lruCache.js":{"path":"/Users/erik/oss/lru-memoize/src/lruCache.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":27}},"2":{"start":{"line":6,"column":16},"end":{"line":6,"column":18}},"3":{"start":{"line":9,"column":21},"end":{"line":11,"column":6}},"4":{"start":{"line":10,"column":6},"end":{"line":10,"column":36}},"5":{"start":{"line":14,"column":4},"end":{"line":24,"column":5}},"6":{"start":{"line":15,"column":18},"end":{"line":15,"column":37}},"7":{"start":{"line":18,"column":6},"end":{"line":21,"column":7}},"8":{"start":{"line":19,"column":8},"end":{"line":19,"column":37}},"9":{"start":{"line":20,"column":8},"end":{"line":20,"column":31}},"10":{"start":{"line":23,"column":6},"end":{"line":23,"column":25}},"11":{"start":{"line":27,"column":4},"end":{"line":27,"column":21}},"12":{"start":{"line":31,"column":4},"end":{"line":36,"column":5}},"13":{"start":{"line":32,"column":6},"end":{"line":32,"column":50}},"14":{"start":{"line":33,"column":6},"end":{"line":35,"column":7}},"15":{"start":{"line":34,"column":8},"end":{"line":34,"column":22}},"16":{"start":{"line":39,"column":2},"end":{"line":39,"column":32}}},"fnMap":{"0":{"name":"lruCache","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":33},"end":{"line":40,"column":1}},"line":5},"1":{"name":"get","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":14}},"loc":{"start":{"line":8,"column":20},"end":{"line":28,"column":3}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":39},"end":{"line":9,"column":40}},"loc":{"start":{"line":9,"column":56},"end":{"line":11,"column":5}},"line":9},"3":{"name":"put","decl":{"start":{"line":30,"column":11},"end":{"line":30,"column":14}},"loc":{"start":{"line":30,"column":27},"end":{"line":37,"column":3}},"line":30}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":4},"end":{"line":24,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":24,"column":5}},{"start":{"line":14,"column":4},"end":{"line":24,"column":5}}],"line":14},"1":{"loc":{"start":{"line":18,"column":6},"end":{"line":21,"column":7}},"type":"if","locations":[{"start":{"line":18,"column":6},"end":{"line":21,"column":7}},{"start":{"line":18,"column":6},"end":{"line":21,"column":7}}],"line":18},"2":{"loc":{"start":{"line":31,"column":4},"end":{"line":36,"column":5}},"type":"if","locations":[{"start":{"line":31,"column":4},"end":{"line":36,"column":5}},{"start":{"line":31,"column":4},"end":{"line":36,"column":5}}],"line":31},"3":{"loc":{"start":{"line":33,"column":6},"end":{"line":35,"column":7}},"type":"if","locations":[{"start":{"line":33,"column":6},"end":{"line":35,"column":7}},{"start":{"line":33,"column":6},"end":{"line":35,"column":7}}],"line":33}},"s":{"0":1,"1":1,"2":2,"3":11,"4":9,"5":11,"6":3,"7":3,"8":2,"9":2,"10":3,"11":8,"12":4,"13":4,"14":4,"15":0,"16":2},"f":{"0":2,"1":11,"2":9,"3":4},"b":{"0":[3,8],"1":[2,1],"2":[4,0],"3":[0,4]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"80d43b1eef1225b4a7c1ecd6b6f98ec152d9d47d","contentHash":"fe49be0b6362db30f6a029629179960f_10.2.0"},"/Users/erik/oss/lru-memoize/src/singletonCache.js":{"path":"/Users/erik/oss/lru-memoize/src/singletonCache.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"2":{"start":{"line":6,"column":14},"end":{"line":6,"column":20}},"3":{"start":{"line":7,"column":2},"end":{"line":16,"column":4}},"4":{"start":{"line":9,"column":6},"end":{"line":11,"column":7}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":27}},"6":{"start":{"line":14,"column":6},"end":{"line":14,"column":41}}},"fnMap":{"0":{"name":"singletonCache","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":23}},"loc":{"start":{"line":5,"column":32},"end":{"line":17,"column":1}},"line":5},"1":{"name":"get","decl":{"start":{"line":8,"column":18},"end":{"line":8,"column":21}},"loc":{"start":{"line":8,"column":27},"end":{"line":12,"column":5}},"line":8},"2":{"name":"put","decl":{"start":{"line":13,"column":18},"end":{"line":13,"column":21}},"loc":{"start":{"line":13,"column":34},"end":{"line":15,"column":5}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":6},"end":{"line":11,"column":7}},"type":"if","locations":[{"start":{"line":9,"column":6},"end":{"line":11,"column":7}},{"start":{"line":9,"column":6},"end":{"line":11,"column":7}}],"line":9},"1":{"loc":{"start":{"line":9,"column":10},"end":{"line":9,"column":41}},"type":"binary-expr","locations":[{"start":{"line":9,"column":10},"end":{"line":9,"column":15}},{"start":{"line":9,"column":19},"end":{"line":9,"column":41}}],"line":9}},"s":{"0":1,"1":1,"2":5,"3":5,"4":15,"5":4,"6":11},"f":{"0":5,"1":15,"2":11},"b":{"0":[4,11],"1":[15,10]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"0a2bf2d5eb18e35a0c4da4f802414eaadf3ee691","contentHash":"8319897eb43d7eb06625a0da40d88326_10.2.0"}} |
| body, html { | ||
| margin:0; padding: 0; | ||
| height: 100%; | ||
| } | ||
| body { | ||
| font-family: Helvetica Neue, Helvetica, Arial; | ||
| font-size: 14px; | ||
| color:#333; | ||
| } | ||
| .small { font-size: 12px; } | ||
| *, *:after, *:before { | ||
| -webkit-box-sizing:border-box; | ||
| -moz-box-sizing:border-box; | ||
| box-sizing:border-box; | ||
| } | ||
| h1 { font-size: 20px; margin: 0;} | ||
| h2 { font-size: 14px; } | ||
| pre { | ||
| font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; | ||
| margin: 0; | ||
| padding: 0; | ||
| -moz-tab-size: 2; | ||
| -o-tab-size: 2; | ||
| tab-size: 2; | ||
| } | ||
| a { color:#0074D9; text-decoration:none; } | ||
| a:hover { text-decoration:underline; } | ||
| .strong { font-weight: bold; } | ||
| .space-top1 { padding: 10px 0 0 0; } | ||
| .pad2y { padding: 20px 0; } | ||
| .pad1y { padding: 10px 0; } | ||
| .pad2x { padding: 0 20px; } | ||
| .pad2 { padding: 20px; } | ||
| .pad1 { padding: 10px; } | ||
| .space-left2 { padding-left:55px; } | ||
| .space-right2 { padding-right:20px; } | ||
| .center { text-align:center; } | ||
| .clearfix { display:block; } | ||
| .clearfix:after { | ||
| content:''; | ||
| display:block; | ||
| height:0; | ||
| clear:both; | ||
| visibility:hidden; | ||
| } | ||
| .fl { float: left; } | ||
| @media only screen and (max-width:640px) { | ||
| .col3 { width:100%; max-width:100%; } | ||
| .hide-mobile { display:none!important; } | ||
| } | ||
| .quiet { | ||
| color: #7f7f7f; | ||
| color: rgba(0,0,0,0.5); | ||
| } | ||
| .quiet a { opacity: 0.7; } | ||
| .fraction { | ||
| font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; | ||
| font-size: 10px; | ||
| color: #555; | ||
| background: #E8E8E8; | ||
| padding: 4px 5px; | ||
| border-radius: 3px; | ||
| vertical-align: middle; | ||
| } | ||
| div.path a:link, div.path a:visited { color: #333; } | ||
| table.coverage { | ||
| border-collapse: collapse; | ||
| margin: 10px 0 0 0; | ||
| padding: 0; | ||
| } | ||
| table.coverage td { | ||
| margin: 0; | ||
| padding: 0; | ||
| vertical-align: top; | ||
| } | ||
| table.coverage td.line-count { | ||
| text-align: right; | ||
| padding: 0 5px 0 20px; | ||
| } | ||
| table.coverage td.line-coverage { | ||
| text-align: right; | ||
| padding-right: 10px; | ||
| min-width:20px; | ||
| } | ||
| table.coverage td span.cline-any { | ||
| display: inline-block; | ||
| padding: 0 5px; | ||
| width: 100%; | ||
| } | ||
| .missing-if-branch { | ||
| display: inline-block; | ||
| margin-right: 5px; | ||
| border-radius: 3px; | ||
| position: relative; | ||
| padding: 0 4px; | ||
| background: #333; | ||
| color: yellow; | ||
| } | ||
| .skip-if-branch { | ||
| display: none; | ||
| margin-right: 10px; | ||
| position: relative; | ||
| padding: 0 4px; | ||
| background: #ccc; | ||
| color: white; | ||
| } | ||
| .missing-if-branch .typ, .skip-if-branch .typ { | ||
| color: inherit !important; | ||
| } | ||
| .coverage-summary { | ||
| border-collapse: collapse; | ||
| width: 100%; | ||
| } | ||
| .coverage-summary tr { border-bottom: 1px solid #bbb; } | ||
| .keyline-all { border: 1px solid #ddd; } | ||
| .coverage-summary td, .coverage-summary th { padding: 10px; } | ||
| .coverage-summary tbody { border: 1px solid #bbb; } | ||
| .coverage-summary td { border-right: 1px solid #bbb; } | ||
| .coverage-summary td:last-child { border-right: none; } | ||
| .coverage-summary th { | ||
| text-align: left; | ||
| font-weight: normal; | ||
| white-space: nowrap; | ||
| } | ||
| .coverage-summary th.file { border-right: none !important; } | ||
| .coverage-summary th.pct { } | ||
| .coverage-summary th.pic, | ||
| .coverage-summary th.abs, | ||
| .coverage-summary td.pct, | ||
| .coverage-summary td.abs { text-align: right; } | ||
| .coverage-summary td.file { white-space: nowrap; } | ||
| .coverage-summary td.pic { min-width: 120px !important; } | ||
| .coverage-summary tfoot td { } | ||
| .coverage-summary .sorter { | ||
| height: 10px; | ||
| width: 7px; | ||
| display: inline-block; | ||
| margin-left: 0.5em; | ||
| background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; | ||
| } | ||
| .coverage-summary .sorted .sorter { | ||
| background-position: 0 -20px; | ||
| } | ||
| .coverage-summary .sorted-desc .sorter { | ||
| background-position: 0 -10px; | ||
| } | ||
| .status-line { height: 10px; } | ||
| /* dark red */ | ||
| .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } | ||
| .low .chart { border:1px solid #C21F39 } | ||
| /* medium red */ | ||
| .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } | ||
| /* light red */ | ||
| .low, .cline-no { background:#FCE1E5 } | ||
| /* light green */ | ||
| .high, .cline-yes { background:rgb(230,245,208) } | ||
| /* medium green */ | ||
| .cstat-yes { background:rgb(161,215,106) } | ||
| /* dark green */ | ||
| .status-line.high, .high .cover-fill { background:rgb(77,146,33) } | ||
| .high .chart { border:1px solid rgb(77,146,33) } | ||
| .medium .chart { border:1px solid #666; } | ||
| .medium .cover-fill { background: #666; } | ||
| .cbranch-no { background: yellow !important; color: #111; } | ||
| .cstat-skip { background: #ddd; color: #111; } | ||
| .fstat-skip { background: #ddd; color: #111 !important; } | ||
| .cbranch-skip { background: #ddd !important; color: #111; } | ||
| span.cline-neutral { background: #eaeaea; } | ||
| .medium { background: #eaeaea; } | ||
| .cover-fill, .cover-empty { | ||
| display:inline-block; | ||
| height: 12px; | ||
| } | ||
| .chart { | ||
| line-height: 0; | ||
| } | ||
| .cover-empty { | ||
| background: white; | ||
| } | ||
| .cover-full { | ||
| border-right: none !important; | ||
| } | ||
| pre.prettyprint { | ||
| border: none !important; | ||
| padding: 0 !important; | ||
| margin: 0 !important; | ||
| } | ||
| .com { color: #999 !important; } | ||
| .ignore-none { color: #999; font-weight: normal; } | ||
| .wrapper { | ||
| min-height: 100%; | ||
| height: auto !important; | ||
| height: 100%; | ||
| margin: 0 auto -48px; | ||
| } | ||
| .footer, .push { | ||
| height: 48px; | ||
| } |
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <title>Code coverage report for deepEquals.js</title> | ||
| <meta charset="utf-8" /> | ||
| <link rel="stylesheet" href="prettify.css" /> | ||
| <link rel="stylesheet" href="base.css" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <style type='text/css'> | ||
| .coverage-summary .sorter { | ||
| background-image: url(sort-arrow-sprite.png); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div class='wrapper'> | ||
| <div class='pad1'> | ||
| <h1> | ||
| <a href="index.html">All files</a> deepEquals.js | ||
| </h1> | ||
| <div class='clearfix'> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Statements</span> | ||
| <span class='fraction'>31/31</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">90.91% </span> | ||
| <span class="quiet">Branches</span> | ||
| <span class='fraction'>30/33</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Functions</span> | ||
| <span class='fraction'>5/5</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Lines</span> | ||
| <span class='fraction'>29/29</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div class='status-line high'></div> | ||
| <pre><table class="coverage"> | ||
| <tr><td class="line-count quiet">1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | ||
| 18 | ||
| 19 | ||
| 20 | ||
| 21 | ||
| 22 | ||
| 23 | ||
| 24 | ||
| 25 | ||
| 26 | ||
| 27 | ||
| 28 | ||
| 29 | ||
| 30 | ||
| 31 | ||
| 32 | ||
| 33 | ||
| 34 | ||
| 35 | ||
| 36 | ||
| 37 | ||
| 38 | ||
| 39 | ||
| 40 | ||
| 41 | ||
| 42 | ||
| 43 | ||
| 44 | ||
| 45 | ||
| 46 | ||
| 47 | ||
| 48 | ||
| 49 | ||
| 50 | ||
| 51 | ||
| 52 | ||
| 53 | ||
| 54 | ||
| 55 | ||
| 56 | ||
| 57 | ||
| 58 | ||
| 59 | ||
| 60 | ||
| 61 | ||
| 62 | ||
| 63 | ||
| 64 | ||
| 65 | ||
| 66 | ||
| 67 | ||
| 68</td><td class="line-coverage quiet"><span class="cline-any cline-yes">36x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">60x</span> | ||
| <span class="cline-any cline-yes">24x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">36x</span> | ||
| <span class="cline-any cline-yes">8x</span> | ||
| <span class="cline-any cline-yes">5x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">5x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">1x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">28x</span> | ||
| <span class="cline-any cline-yes">3x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">25x</span> | ||
| <span class="cline-any cline-yes">17x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">13x</span> | ||
| <span class="cline-any cline-yes">13x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">13x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">11x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">11x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">18x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">5x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">6x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">8x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const hasOwn = (object, key) => | ||
| Object.prototype.hasOwnProperty.call(object, key) | ||
| export default function deepEquals(equals, deepObjects) { | ||
| function deep(valueA, valueB) { | ||
| if (equals(valueA, valueB)) { | ||
| return true | ||
| } | ||
| | ||
| if (Array.isArray(valueA)) { | ||
| if (!Array.isArray(valueB) || valueA.length !== valueB.length) { | ||
| return false | ||
| } | ||
| | ||
| // Check deep equality of each value in A against the same indexed value in B | ||
| if (!valueA.every((value, index) => deep(value, valueB[index]))) { | ||
| return false | ||
| } | ||
| | ||
| // could not find unequal items | ||
| return true | ||
| } | ||
| | ||
| if (Array.isArray(valueB)) { | ||
| return false | ||
| } | ||
| | ||
| if (<span class="branch-0 cbranch-no" title="branch not covered" >typeof </span>valueA === 'object') { | ||
| if (<span class="branch-0 cbranch-no" title="branch not covered" >typeof </span>valueB !== 'object') { | ||
| return false | ||
| } | ||
| | ||
| const isANull = valueA === null | ||
| const isBNull = valueB === null | ||
| if (isANull || isBNull) { | ||
| return isANull === isBNull | ||
| } | ||
| | ||
| const aKeys = Object.keys(valueA) | ||
| const bKeys = Object.keys(valueB) | ||
| | ||
| if (aKeys.length !== bKeys.length) { | ||
| return false | ||
| } | ||
| | ||
| // Should we compare with shallow equivalence or deep equivalence? | ||
| c</span>onst equalityChecker = deepObjects ? deep : <span class="branch-1 cbranch-no" title="branch not covered" >equals | ||
| | ||
| // Check if objects share same keys, and each of those keys are equal | ||
| if ( | ||
| !aKeys.every( | ||
| aKey => | ||
| hasOwn(valueA, aKey) && | ||
| hasOwn(valueB, aKey) && | ||
| equalityChecker(valueA[aKey], valueB[aKey]) | ||
| ) | ||
| ) { | ||
| return false | ||
| } | ||
| | ||
| // could not find unequal keys or values | ||
| return true | ||
| } | ||
| return false | ||
| } | ||
| | ||
| return deep | ||
| } | ||
| </pre></td></tr> | ||
| </table></pre> | ||
| <div class='push'></div><!-- for sticky footer --> | ||
| </div><!-- /wrapper --> | ||
| <div class='footer quiet pad2 space-top1 center small'> | ||
| Code coverage | ||
| generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Apr 18 2017 10:27:07 GMT+0200 (CEST) | ||
| </div> | ||
| </div> | ||
| <script src="prettify.js"></script> | ||
| <script> | ||
| window.onload = function () { | ||
| if (typeof prettyPrint === 'function') { | ||
| prettyPrint(); | ||
| } | ||
| }; | ||
| </script> | ||
| <script src="sorter.js"></script> | ||
| </body> | ||
| </html> |
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <title>Code coverage report for All files</title> | ||
| <meta charset="utf-8" /> | ||
| <link rel="stylesheet" href="prettify.css" /> | ||
| <link rel="stylesheet" href="base.css" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <style type='text/css'> | ||
| .coverage-summary .sorter { | ||
| background-image: url(sort-arrow-sprite.png); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div class='wrapper'> | ||
| <div class='pad1'> | ||
| <h1> | ||
| All files | ||
| </h1> | ||
| <div class='clearfix'> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">96.55% </span> | ||
| <span class="quiet">Statements</span> | ||
| <span class='fraction'>84/87</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">88.89% </span> | ||
| <span class="quiet">Branches</span> | ||
| <span class='fraction'>56/63</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Functions</span> | ||
| <span class='fraction'>19/19</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">96.2% </span> | ||
| <span class="quiet">Lines</span> | ||
| <span class='fraction'>76/79</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div class='status-line high'></div> | ||
| <div class="pad1"> | ||
| <table class="coverage-summary"> | ||
| <thead> | ||
| <tr> | ||
| <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> | ||
| <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> | ||
| <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> | ||
| <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> | ||
| <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> | ||
| <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> | ||
| <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> | ||
| <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> | ||
| <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> | ||
| <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> | ||
| </tr> | ||
| </thead> | ||
| <tbody><tr> | ||
| <td class="file high" data-value="deepEquals.js"><a href="deepEquals.js.html">deepEquals.js</a></td> | ||
| <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="31" class="abs high">31/31</td> | ||
| <td data-value="90.91" class="pct high">90.91%</td> | ||
| <td data-value="33" class="abs high">30/33</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="5" class="abs high">5/5</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="29" class="abs high">29/29</td> | ||
| </tr> | ||
| <tr> | ||
| <td class="file high" data-value="lruCache.js"><a href="lruCache.js.html">lruCache.js</a></td> | ||
| <td data-value="93.33" class="pic high"><div class="chart"><div class="cover-fill" style="width: 93%;"></div><div class="cover-empty" style="width:7%;"></div></div></td> | ||
| <td data-value="93.33" class="pct high">93.33%</td> | ||
| <td data-value="15" class="abs high">14/15</td> | ||
| <td data-value="75" class="pct medium">75%</td> | ||
| <td data-value="8" class="abs medium">6/8</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="4" class="abs high">4/4</td> | ||
| <td data-value="92.86" class="pct high">92.86%</td> | ||
| <td data-value="14" class="abs high">13/14</td> | ||
| </tr> | ||
| <tr> | ||
| <td class="file high" data-value="memoize.js"><a href="memoize.js.html">memoize.js</a></td> | ||
| <td data-value="94.44" class="pic high"><div class="chart"><div class="cover-fill" style="width: 94%;"></div><div class="cover-empty" style="width:6%;"></div></div></td> | ||
| <td data-value="94.44" class="pct high">94.44%</td> | ||
| <td data-value="36" class="abs high">34/36</td> | ||
| <td data-value="88.89" class="pct high">88.89%</td> | ||
| <td data-value="18" class="abs high">16/18</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="7" class="abs high">7/7</td> | ||
| <td data-value="93.55" class="pct high">93.55%</td> | ||
| <td data-value="31" class="abs high">29/31</td> | ||
| </tr> | ||
| <tr> | ||
| <td class="file high" data-value="singletonCache.js"><a href="singletonCache.js.html">singletonCache.js</a></td> | ||
| <td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="5" class="abs high">5/5</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="4" class="abs high">4/4</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="3" class="abs high">3/3</td> | ||
| <td data-value="100" class="pct high">100%</td> | ||
| <td data-value="5" class="abs high">5/5</td> | ||
| </tr> | ||
| </tbody> | ||
| </table> | ||
| </div><div class='push'></div><!-- for sticky footer --> | ||
| </div><!-- /wrapper --> | ||
| <div class='footer quiet pad2 space-top1 center small'> | ||
| Code coverage | ||
| generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Apr 18 2017 10:27:07 GMT+0200 (CEST) | ||
| </div> | ||
| </div> | ||
| <script src="prettify.js"></script> | ||
| <script> | ||
| window.onload = function () { | ||
| if (typeof prettyPrint === 'function') { | ||
| prettyPrint(); | ||
| } | ||
| }; | ||
| </script> | ||
| <script src="sorter.js"></script> | ||
| </body> | ||
| </html> |
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <title>Code coverage report for lruCache.js</title> | ||
| <meta charset="utf-8" /> | ||
| <link rel="stylesheet" href="prettify.css" /> | ||
| <link rel="stylesheet" href="base.css" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <style type='text/css'> | ||
| .coverage-summary .sorter { | ||
| background-image: url(sort-arrow-sprite.png); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div class='wrapper'> | ||
| <div class='pad1'> | ||
| <h1> | ||
| <a href="index.html">All files</a> lruCache.js | ||
| </h1> | ||
| <div class='clearfix'> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">93.33% </span> | ||
| <span class="quiet">Statements</span> | ||
| <span class='fraction'>14/15</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">75% </span> | ||
| <span class="quiet">Branches</span> | ||
| <span class='fraction'>6/8</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Functions</span> | ||
| <span class='fraction'>4/4</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">92.86% </span> | ||
| <span class="quiet">Lines</span> | ||
| <span class='fraction'>13/14</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div class='status-line high'></div> | ||
| <pre><table class="coverage"> | ||
| <tr><td class="line-count quiet">1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | ||
| 18 | ||
| 19 | ||
| 20 | ||
| 21 | ||
| 22 | ||
| 23 | ||
| 24 | ||
| 25 | ||
| 26 | ||
| 27 | ||
| 28 | ||
| 29 | ||
| 30 | ||
| 31 | ||
| 32 | ||
| 33 | ||
| 34 | ||
| 35</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">11x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">11x</span> | ||
| <span class="cline-any cline-yes">3x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">3x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">3x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">8x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-no"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export default function lruCache(limit, equals) { | ||
| const entries = [] | ||
| | ||
| function get(key) { | ||
| const cacheIndex = entries.findIndex(entry => equals(key, entry.key)) | ||
| | ||
| // We found a cached entry | ||
| if (cacheIndex > -1) { | ||
| const entry = entries[cacheIndex] | ||
| | ||
| // Cached entry not at top of cache, move it to the top | ||
| if (cacheIndex > 0) { | ||
| entries.slice(cacheIndex, 1) | ||
| entries.unshift(entry) | ||
| } | ||
| | ||
| return entry.value | ||
| } | ||
| | ||
| // No entry found in cache, return null | ||
| return undefined | ||
| } | ||
| | ||
| function put(key, value) { | ||
| <span class="missing-if-branch" title="else path not taken" >E</span>if (!get(key)) { | ||
| entries.unshift({ key, value }) | ||
| <span class="missing-if-branch" title="if path not taken" >I</span>if (entries.length > limit) { | ||
| <span class="cstat-no" title="statement not covered" > entries.pop()</span> | ||
| } | ||
| } | ||
| } | ||
| | ||
| return { get, put } | ||
| } | ||
| </pre></td></tr> | ||
| </table></pre> | ||
| <div class='push'></div><!-- for sticky footer --> | ||
| </div><!-- /wrapper --> | ||
| <div class='footer quiet pad2 space-top1 center small'> | ||
| Code coverage | ||
| generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Apr 18 2017 10:27:07 GMT+0200 (CEST) | ||
| </div> | ||
| </div> | ||
| <script src="prettify.js"></script> | ||
| <script> | ||
| window.onload = function () { | ||
| if (typeof prettyPrint === 'function') { | ||
| prettyPrint(); | ||
| } | ||
| }; | ||
| </script> | ||
| <script src="sorter.js"></script> | ||
| </body> | ||
| </html> |
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <title>Code coverage report for memoize.js</title> | ||
| <meta charset="utf-8" /> | ||
| <link rel="stylesheet" href="prettify.css" /> | ||
| <link rel="stylesheet" href="base.css" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <style type='text/css'> | ||
| .coverage-summary .sorter { | ||
| background-image: url(sort-arrow-sprite.png); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div class='wrapper'> | ||
| <div class='pad1'> | ||
| <h1> | ||
| <a href="index.html">All files</a> memoize.js | ||
| </h1> | ||
| <div class='clearfix'> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">94.44% </span> | ||
| <span class="quiet">Statements</span> | ||
| <span class='fraction'>34/36</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">88.89% </span> | ||
| <span class="quiet">Branches</span> | ||
| <span class='fraction'>16/18</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Functions</span> | ||
| <span class='fraction'>7/7</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">93.55% </span> | ||
| <span class="quiet">Lines</span> | ||
| <span class='fraction'>29/31</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div class='status-line high'></div> | ||
| <pre><table class="coverage"> | ||
| <tr><td class="line-count quiet">1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | ||
| 18 | ||
| 19 | ||
| 20 | ||
| 21 | ||
| 22 | ||
| 23 | ||
| 24 | ||
| 25 | ||
| 26 | ||
| 27 | ||
| 28 | ||
| 29 | ||
| 30 | ||
| 31 | ||
| 32 | ||
| 33 | ||
| 34 | ||
| 35 | ||
| 36 | ||
| 37 | ||
| 38 | ||
| 39 | ||
| 40 | ||
| 41 | ||
| 42 | ||
| 43 | ||
| 44 | ||
| 45 | ||
| 46 | ||
| 47 | ||
| 48 | ||
| 49 | ||
| 50 | ||
| 51 | ||
| 52 | ||
| 53 | ||
| 54 | ||
| 55 | ||
| 56 | ||
| 57 | ||
| 58 | ||
| 59 | ||
| 60 | ||
| 61 | ||
| 62 | ||
| 63</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span> | ||
| <span class="cline-any cline-yes">1x</span> | ||
| <span class="cline-any cline-yes">1x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">19x</span> | ||
| <span class="cline-any cline-no"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">19x</span> | ||
| <span class="cline-any cline-yes">33x</span> | ||
| <span class="cline-any cline-yes">12x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-yes">43x</span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-yes">2x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-no"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-yes">3x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">7x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">66x</span> | ||
| <span class="cline-any cline-yes">22x</span> | ||
| <span class="cline-any cline-yes">22x</span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">22x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import deepEquals from './deepEquals' | ||
| import lruCache from './lruCache' | ||
| import singletonCache from './singletonCache' | ||
| | ||
| function createCache(limit, equals) { | ||
| return limit === 1 ? singletonCache(equals) : lruCache(limit, equals) | ||
| } | ||
| | ||
| function createEqualsFn(basicEquals, deepObjects) { | ||
| // Choose strategy for basic or deep object equals | ||
| const equals = deepObjects | ||
| ? deepEquals(basicEquals, deepObjects) | ||
| : basicEquals | ||
| | ||
| return (valueA, valueB) => { | ||
| // The arguments are always the argument array-like objects | ||
| | ||
| // Different lengths means they are not the same | ||
| <span class="missing-if-branch" title="if path not taken" >I</span>if (valueA.length !== valueB.length) { | ||
| <span class="cstat-no" title="statement not covered" > return false</span> | ||
| } | ||
| | ||
| // Compare the values | ||
| for (let index = 0; index < valueA.length; index += 1) { | ||
| if (!equals(valueA[index], valueB[index])) { | ||
| return false | ||
| } | ||
| } | ||
| // Found no conflicts | ||
| return true | ||
| } | ||
| } | ||
| | ||
| export default function memoize(...config) { | ||
| let limit = 1 | ||
| let equals = (valueA, valueB) => valueA === valueB | ||
| let deepObjects = false | ||
| | ||
| if (typeof config[0] === 'number') { | ||
| limit = config.shift() | ||
| } | ||
| <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof config[0] === 'function') { | ||
| <span class="cstat-no" title="statement not covered" > equals = config.shift()</span> | ||
| } else if (typeof config[0] === 'undefined') { | ||
| // Support passing undefined equal argument; | ||
| config.shift() | ||
| } | ||
| if (typeof config[0] === 'boolean') { | ||
| deepObjects = config[0] | ||
| } | ||
| | ||
| const cache = createCache(limit, createEqualsFn(equals, deepObjects)) | ||
| | ||
| return fn => (...args) => { | ||
| let value = cache.get(args) | ||
| if (value === undefined) { | ||
| value = fn.apply(fn, args) | ||
| cache.put(args, value) | ||
| } | ||
| return value | ||
| } | ||
| } | ||
| </pre></td></tr> | ||
| </table></pre> | ||
| <div class='push'></div><!-- for sticky footer --> | ||
| </div><!-- /wrapper --> | ||
| <div class='footer quiet pad2 space-top1 center small'> | ||
| Code coverage | ||
| generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Apr 18 2017 10:27:07 GMT+0200 (CEST) | ||
| </div> | ||
| </div> | ||
| <script src="prettify.js"></script> | ||
| <script> | ||
| window.onload = function () { | ||
| if (typeof prettyPrint === 'function') { | ||
| prettyPrint(); | ||
| } | ||
| }; | ||
| </script> | ||
| <script src="sorter.js"></script> | ||
| </body> | ||
| </html> |
| .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} |
| window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); |
| <!doctype html> | ||
| <html lang="en"> | ||
| <head> | ||
| <title>Code coverage report for singletonCache.js</title> | ||
| <meta charset="utf-8" /> | ||
| <link rel="stylesheet" href="prettify.css" /> | ||
| <link rel="stylesheet" href="base.css" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <style type='text/css'> | ||
| .coverage-summary .sorter { | ||
| background-image: url(sort-arrow-sprite.png); | ||
| } | ||
| </style> | ||
| </head> | ||
| <body> | ||
| <div class='wrapper'> | ||
| <div class='pad1'> | ||
| <h1> | ||
| <a href="index.html">All files</a> singletonCache.js | ||
| </h1> | ||
| <div class='clearfix'> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Statements</span> | ||
| <span class='fraction'>5/5</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Branches</span> | ||
| <span class='fraction'>4/4</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Functions</span> | ||
| <span class='fraction'>3/3</span> | ||
| </div> | ||
| <div class='fl pad1y space-right2'> | ||
| <span class="strong">100% </span> | ||
| <span class="quiet">Lines</span> | ||
| <span class='fraction'>5/5</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div class='status-line high'></div> | ||
| <pre><table class="coverage"> | ||
| <tr><td class="line-count quiet">1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">5x</span> | ||
| <span class="cline-any cline-yes">5x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">15x</span> | ||
| <span class="cline-any cline-yes">4x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-yes">11x</span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span> | ||
| <span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export default function singletonCache(equals) { | ||
| let entry | ||
| return { | ||
| get(key) { | ||
| if (entry && equals(key, entry.key)) { | ||
| return entry.value | ||
| } | ||
| }, | ||
| | ||
| put(key, value) { | ||
| entry = { key, value } | ||
| } | ||
| } | ||
| } | ||
| </pre></td></tr> | ||
| </table></pre> | ||
| <div class='push'></div><!-- for sticky footer --> | ||
| </div><!-- /wrapper --> | ||
| <div class='footer quiet pad2 space-top1 center small'> | ||
| Code coverage | ||
| generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Apr 18 2017 10:27:07 GMT+0200 (CEST) | ||
| </div> | ||
| </div> | ||
| <script src="prettify.js"></script> | ||
| <script> | ||
| window.onload = function () { | ||
| if (typeof prettyPrint === 'function') { | ||
| prettyPrint(); | ||
| } | ||
| }; | ||
| </script> | ||
| <script src="sorter.js"></script> | ||
| </body> | ||
| </html> |
Sorry, the diff of this file is not supported yet
| var addSorting = (function () { | ||
| "use strict"; | ||
| var cols, | ||
| currentSort = { | ||
| index: 0, | ||
| desc: false | ||
| }; | ||
| // returns the summary table element | ||
| function getTable() { return document.querySelector('.coverage-summary'); } | ||
| // returns the thead element of the summary table | ||
| function getTableHeader() { return getTable().querySelector('thead tr'); } | ||
| // returns the tbody element of the summary table | ||
| function getTableBody() { return getTable().querySelector('tbody'); } | ||
| // returns the th element for nth column | ||
| function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } | ||
| // loads all columns | ||
| function loadColumns() { | ||
| var colNodes = getTableHeader().querySelectorAll('th'), | ||
| colNode, | ||
| cols = [], | ||
| col, | ||
| i; | ||
| for (i = 0; i < colNodes.length; i += 1) { | ||
| colNode = colNodes[i]; | ||
| col = { | ||
| key: colNode.getAttribute('data-col'), | ||
| sortable: !colNode.getAttribute('data-nosort'), | ||
| type: colNode.getAttribute('data-type') || 'string' | ||
| }; | ||
| cols.push(col); | ||
| if (col.sortable) { | ||
| col.defaultDescSort = col.type === 'number'; | ||
| colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'; | ||
| } | ||
| } | ||
| return cols; | ||
| } | ||
| // attaches a data attribute to every tr element with an object | ||
| // of data values keyed by column name | ||
| function loadRowData(tableRow) { | ||
| var tableCols = tableRow.querySelectorAll('td'), | ||
| colNode, | ||
| col, | ||
| data = {}, | ||
| i, | ||
| val; | ||
| for (i = 0; i < tableCols.length; i += 1) { | ||
| colNode = tableCols[i]; | ||
| col = cols[i]; | ||
| val = colNode.getAttribute('data-value'); | ||
| if (col.type === 'number') { | ||
| val = Number(val); | ||
| } | ||
| data[col.key] = val; | ||
| } | ||
| return data; | ||
| } | ||
| // loads all row data | ||
| function loadData() { | ||
| var rows = getTableBody().querySelectorAll('tr'), | ||
| i; | ||
| for (i = 0; i < rows.length; i += 1) { | ||
| rows[i].data = loadRowData(rows[i]); | ||
| } | ||
| } | ||
| // sorts the table using the data for the ith column | ||
| function sortByIndex(index, desc) { | ||
| var key = cols[index].key, | ||
| sorter = function (a, b) { | ||
| a = a.data[key]; | ||
| b = b.data[key]; | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| }, | ||
| finalSorter = sorter, | ||
| tableBody = document.querySelector('.coverage-summary tbody'), | ||
| rowNodes = tableBody.querySelectorAll('tr'), | ||
| rows = [], | ||
| i; | ||
| if (desc) { | ||
| finalSorter = function (a, b) { | ||
| return -1 * sorter(a, b); | ||
| }; | ||
| } | ||
| for (i = 0; i < rowNodes.length; i += 1) { | ||
| rows.push(rowNodes[i]); | ||
| tableBody.removeChild(rowNodes[i]); | ||
| } | ||
| rows.sort(finalSorter); | ||
| for (i = 0; i < rows.length; i += 1) { | ||
| tableBody.appendChild(rows[i]); | ||
| } | ||
| } | ||
| // removes sort indicators for current column being sorted | ||
| function removeSortIndicators() { | ||
| var col = getNthColumn(currentSort.index), | ||
| cls = col.className; | ||
| cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); | ||
| col.className = cls; | ||
| } | ||
| // adds sort indicators for current column being sorted | ||
| function addSortIndicators() { | ||
| getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; | ||
| } | ||
| // adds event listeners for all sorter widgets | ||
| function enableUI() { | ||
| var i, | ||
| el, | ||
| ithSorter = function ithSorter(i) { | ||
| var col = cols[i]; | ||
| return function () { | ||
| var desc = col.defaultDescSort; | ||
| if (currentSort.index === i) { | ||
| desc = !currentSort.desc; | ||
| } | ||
| sortByIndex(i, desc); | ||
| removeSortIndicators(); | ||
| currentSort.index = i; | ||
| currentSort.desc = desc; | ||
| addSortIndicators(); | ||
| }; | ||
| }; | ||
| for (i =0 ; i < cols.length; i += 1) { | ||
| if (cols[i].sortable) { | ||
| // add the click event handler on the th so users | ||
| // dont have to click on those tiny arrows | ||
| el = getNthColumn(i).querySelector('.sorter').parentElement; | ||
| if (el.addEventListener) { | ||
| el.addEventListener('click', ithSorter(i)); | ||
| } else { | ||
| el.attachEvent('onclick', ithSorter(i)); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // adds sorting functionality to the UI | ||
| return function () { | ||
| if (!getTable()) { | ||
| return; | ||
| } | ||
| cols = loadColumns(); | ||
| loadData(cols); | ||
| addSortIndicators(); | ||
| enableUI(); | ||
| }; | ||
| })(); | ||
| window.addEventListener('load', addSorting); |
Sorry, the diff of this file is not supported yet
| 'use strict'; | ||
| var _expect = require('expect'); | ||
| var _expect2 = _interopRequireDefault(_expect); | ||
| var _deepEquals = require('../deepEquals'); | ||
| var _deepEquals2 = _interopRequireDefault(_deepEquals); | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| var tripleEquals = (0, _deepEquals2.default)(function (valueA, valueB) { | ||
| return valueA === valueB; | ||
| }, true); | ||
| describe('deepEquals', function () { | ||
| it('should return true if argument fields are equal', function () { | ||
| (0, _expect2.default)(tripleEquals(3, 3)).toBe(true); | ||
| (0, _expect2.default)(tripleEquals('dog', 'dog')).toBe(true); | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2, c: undefined }, { a: 1, b: 2, c: undefined })).toBe(true); | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2, c: 3 }, { a: 1, b: 2, c: 3 })).toBe(true); | ||
| var obj = {}; | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2, c: obj }, { a: 1, b: 2, c: obj })).toBe(true); | ||
| (0, _expect2.default)(tripleEquals(null, null)).toBe(true); | ||
| }); | ||
| it('should return false if arguments are number and string', function () { | ||
| (0, _expect2.default)(tripleEquals(2, '2')).toBe(false); | ||
| }); | ||
| it('should return false if arguments are string and number', function () { | ||
| (0, _expect2.default)(tripleEquals('2', 2)).toBe(false); | ||
| }); | ||
| it('should return false if arguments are number and object', function () { | ||
| (0, _expect2.default)(tripleEquals(4, {})).toBe(false); | ||
| }); | ||
| it('should return false if arguments are object and number', function () { | ||
| (0, _expect2.default)(tripleEquals({}, 4)).toBe(false); | ||
| }); | ||
| it('should return false if arguments are number and array', function () { | ||
| (0, _expect2.default)(tripleEquals(4, [])).toBe(false); | ||
| }); | ||
| it('should return false if arguments are array and number', function () { | ||
| (0, _expect2.default)(tripleEquals([], 4)).toBe(false); | ||
| }); | ||
| it('should return false if arguments are string and object', function () { | ||
| (0, _expect2.default)(tripleEquals('cat', {})).toBe(false); | ||
| }); | ||
| it('should return false if arguments are object and string', function () { | ||
| (0, _expect2.default)(tripleEquals({}, 'cat')).toBe(false); | ||
| }); | ||
| it('should return false if arguments are string and array', function () { | ||
| (0, _expect2.default)(tripleEquals('cat', ['c', 'a', 't'])).toBe(false); | ||
| }); | ||
| it('should return false if arguments are array and string', function () { | ||
| (0, _expect2.default)(tripleEquals(['c', 'a', 't'], 'cat')).toBe(false); | ||
| }); | ||
| it('should return false if arguments are array and object', function () { | ||
| (0, _expect2.default)(tripleEquals([], {})).toBe(false); | ||
| }); | ||
| it('should return false if arguments are object and array', function () { | ||
| (0, _expect2.default)(tripleEquals({}, [])).toBe(false); | ||
| }); | ||
| it('should return false if arguments are object and null', function () { | ||
| (0, _expect2.default)(tripleEquals({ a: 1 }, null)).toBe(false); | ||
| }); | ||
| it('should return false if arguments are null and object', function () { | ||
| (0, _expect2.default)(tripleEquals(null, { a: 1 })).toBe(false); | ||
| }); | ||
| it('should return false if first argument has too many keys', function () { | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2, c: 3 }, { a: 1, b: 2 })).toBe(false); | ||
| }); | ||
| it('should return false if second argument has too many keys', function () { | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2 }, { a: 1, b: 2, c: 3 })).toBe(false); | ||
| }); | ||
| it('should return false if arguments have different keys', function () { | ||
| (0, _expect2.default)(tripleEquals({ a: 1, b: 2, c: undefined }, { a: 1, bb: 2, c: undefined })).toBe(false); | ||
| }); | ||
| it('should return false if first array argument has too many items', function () { | ||
| (0, _expect2.default)(tripleEquals([1, 2, 3, 4], [1, 2, 3])).toBe(false); | ||
| }); | ||
| it('should return false if second array argument has too many items', function () { | ||
| (0, _expect2.default)(tripleEquals([1, 2, 3], [1, 2, 3, 4])).toBe(false); | ||
| }); | ||
| it('should work with objects inside arrays', function () { | ||
| (0, _expect2.default)(tripleEquals([{ val: 4 }, { val: 2 }, { val: 3 }], [{ val: 1 }, { val: 2 }, { val: 3 }])).toBe(false); | ||
| }); | ||
| }); |
| 'use strict'; | ||
| var _expect = require('expect'); | ||
| var _expect2 = _interopRequireDefault(_expect); | ||
| var _memoize = require('../memoize'); | ||
| var _memoize2 = _interopRequireDefault(_memoize); | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| describe('memoize', function () { | ||
| describe('basic', function () { | ||
| it('single', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x * y * z; | ||
| }; | ||
| multiply = (0, _memoize2.default)()(multiply); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(1); | ||
| (0, _expect2.default)(multiply(4, 5, 6)).toBe(120); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(3); | ||
| }); | ||
| it('multiple', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x * y * z; | ||
| }; | ||
| multiply = (0, _memoize2.default)(2)(multiply); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(1); | ||
| (0, _expect2.default)(multiply(4, 5, 6)).toBe(120); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| (0, _expect2.default)(multiply(1, 2, 3)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| (0, _expect2.default)(multiply(4, 5, 6)).toBe(120); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| }); | ||
| describe('shallow', function () { | ||
| it('array', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x.concat(y, z).reduce(function (t, n) { | ||
| return t * n; | ||
| }); | ||
| }; | ||
| multiply = (0, _memoize2.default)()(multiply); | ||
| var x = [1, 2, 3]; | ||
| var y = [4, 5, 6]; | ||
| var z = [7, 8, 9]; | ||
| var x2 = [1, 2, 3]; | ||
| (0, _expect2.default)(multiply(x, y, z)).toBe(362880); | ||
| (0, _expect2.default)(multiply(x2, y, z)).toBe(362880); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| it('object', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x.val * y.val * z.val; | ||
| }; | ||
| multiply = (0, _memoize2.default)(2)(multiply); | ||
| var x = { val: 1 }; | ||
| var y = { val: 2 }; | ||
| var z = { val: 3 }; | ||
| var x2 = { val: 1 }; | ||
| (0, _expect2.default)(multiply(x, y, z)).toBe(6); | ||
| (0, _expect2.default)(multiply(x2, y, z)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| }); | ||
| describe('deep', function () { | ||
| it('array', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x.concat(y, z).reduce(function (t, n) { | ||
| return t * n; | ||
| }); | ||
| }; | ||
| multiply = (0, _memoize2.default)(true)(multiply); | ||
| var x = [1, 2, 3]; | ||
| var y = [4, 5, 6]; | ||
| var z = [7, 8, 9]; | ||
| var x2 = [1, 2, 3]; | ||
| var x3 = [3, 2, 1]; | ||
| (0, _expect2.default)(multiply(x, y, z)).toBe(362880); | ||
| (0, _expect2.default)(multiply(x2, y, z)).toBe(362880); | ||
| (0, _expect2.default)(callCount).toBe(1); | ||
| (0, _expect2.default)(multiply(x3, y, z)).toBe(362880); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| it('object', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x.val * y.val * z.val; | ||
| }; | ||
| multiply = (0, _memoize2.default)(true)(multiply); | ||
| var x = { val: 1 }; | ||
| var y = { val: 2 }; | ||
| var z = { val: 3 }; | ||
| var x2 = { val: 1 }; | ||
| var x3 = { val: 4 }; | ||
| (0, _expect2.default)(multiply(x, y, z)).toBe(6); | ||
| (0, _expect2.default)(multiply(x2, y, z)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(1); | ||
| (0, _expect2.default)(multiply(x3, y, z)).toBe(24); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| it('object nested', function () { | ||
| var callCount = 0; | ||
| var multiply = function multiply(x, y, z) { | ||
| callCount += 1; | ||
| return x.inner.val * y.inner.val * z.inner.val; | ||
| }; | ||
| multiply = (0, _memoize2.default)(true)(multiply); | ||
| var x = { inner: { val: 1 } }; | ||
| var y = { inner: { val: 2 } }; | ||
| var z = { inner: { val: 3 } }; | ||
| var x2 = { inner: { val: 1 } }; | ||
| var x3 = { inner: { val: 4 } }; | ||
| (0, _expect2.default)(multiply(x, y, z)).toBe(6); | ||
| (0, _expect2.default)(multiply(x2, y, z)).toBe(6); | ||
| (0, _expect2.default)(callCount).toBe(1); | ||
| (0, _expect2.default)(multiply(x3, y, z)).toBe(24); | ||
| (0, _expect2.default)(callCount).toBe(2); | ||
| }); | ||
| }); | ||
| }); |
+3
-2
| { | ||
| "stage": 0, | ||
| "loose": "all" | ||
| "presets": [ | ||
| ["es2015", { "loose": true }] | ||
| ] | ||
| } |
+1
-10
| { | ||
| "extends": "eslint-config-airbnb", | ||
| "env": { | ||
| "browser": true, | ||
| "mocha": true, | ||
| "node": true | ||
| }, | ||
| "rules": { | ||
| "comma-dangle": 0, // not sure why airbnb turned this on. gross! | ||
| "indent": [2, 2, {"SwitchCase": 1}] | ||
| } | ||
| "extends": "react-app" | ||
| } |
+1
-11
@@ -6,13 +6,3 @@ <?xml version="1.0" encoding="UTF-8"?> | ||
| </component> | ||
| <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | ||
| <OptionsSetting value="true" id="Add" /> | ||
| <OptionsSetting value="true" id="Remove" /> | ||
| <OptionsSetting value="true" id="Checkout" /> | ||
| <OptionsSetting value="true" id="Update" /> | ||
| <OptionsSetting value="true" id="Status" /> | ||
| <OptionsSetting value="true" id="Edit" /> | ||
| <ConfirmationsSetting value="0" id="Add" /> | ||
| <ConfirmationsSetting value="0" id="Remove" /> | ||
| </component> | ||
| <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK" /> | ||
| <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" default="false" project-jdk-name="1.7" project-jdk-type="JavaSDK" /> | ||
| </project> |
+400
-254
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <project version="4"> | ||
| <component name="ChangeListManager"> | ||
| <list default="true" id="2d4f98e9-f77d-4fea-8316-8d1f6752a2a2" name="Default" comment="" /> | ||
| <list default="true" id="2d4f98e9-f77d-4fea-8316-8d1f6752a2a2" name="Default" comment=""> | ||
| <change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" /> | ||
| </list> | ||
| <ignored path="lru-memoize.iws" /> | ||
@@ -15,3 +17,2 @@ <ignored path=".idea/workspace.xml" /> | ||
| </component> | ||
| <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> | ||
| <component name="CreatePatchCommitExecutor"> | ||
@@ -29,5 +30,7 @@ <option name="PATCH_PATH" value="" /> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <folding /> | ||
| <state relative-caret-position="126"> | ||
| <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="47:237" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -37,7 +40,7 @@ </provider> | ||
| </file> | ||
| <file leaf-file-name="package.json" pinned="false" current-in-tab="false"> | ||
| <file leaf-file-name="package.json" pinned="false" current-in-tab="true"> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-23.125"> | ||
| <caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" /> | ||
| <state relative-caret-position="36"> | ||
| <caret line="2" column="18" lean-forward="false" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" /> | ||
| <folding /> | ||
@@ -48,7 +51,7 @@ </state> | ||
| </file> | ||
| <file leaf-file-name="memoize.js" pinned="false" current-in-tab="true"> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <file leaf-file-name="LICENSE" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/LICENSE"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.18050541"> | ||
| <caret line="10" column="2" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <state relative-caret-position="54"> | ||
| <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -62,5 +65,10 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="20" column="4" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <folding /> | ||
| <state relative-caret-position="72"> | ||
| <caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="78:174" ph="{...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="91:170" ph="[...]" /> | ||
| <marker date="1492504619000" expanded="true" signature="186:243" ph="{"library": 'LruMemoize'...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="256:285" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -73,4 +81,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <state relative-caret-position="252"> | ||
| <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -81,8 +89,10 @@ </state> | ||
| </file> | ||
| <file leaf-file-name="index.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/src/index.js"> | ||
| <file leaf-file-name="memoize.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| <state relative-caret-position="522"> | ||
| <caret line="29" column="14" lean-forward="false" selection-start-line="29" selection-start-column="14" selection-end-line="29" selection-end-column="14" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -95,4 +105,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="16" column="3" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" /> | ||
| <state relative-caret-position="234"> | ||
| <caret line="13" column="20" lean-forward="false" selection-start-line="13" selection-start-column="20" selection-end-line="13" selection-end-column="20" /> | ||
| <folding /> | ||
@@ -103,10 +113,9 @@ </state> | ||
| </file> | ||
| <file leaf-file-name=".eslintrc" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/.eslintrc"> | ||
| <file leaf-file-name="deepEquals.js" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/src/deepEquals.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-7.5"> | ||
| <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" /> | ||
| <state relative-caret-position="684"> | ||
| <caret line="58" column="0" lean-forward="false" selection-start-line="58" selection-start-column="0" selection-end-line="58" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1451729625000" expanded="true" signature="48:110" placeholder="{"browser": true...}" /> | ||
| <marker date="1451729625000" expanded="true" signature="123:238" placeholder="{"comma-dangle": 0...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="1639:1641" ph="{...}" /> | ||
| </folding> | ||
@@ -117,28 +126,2 @@ </state> | ||
| </file> | ||
| <file leaf-file-name="README.md" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-7.413793"> | ||
| <caret line="24" column="18" selection-start-line="24" selection-start-column="18" selection-end-line="24" selection-end-column="18" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="MarkdownPreviewEditor"> | ||
| <state /> | ||
| </provider> | ||
| <provider editor-type-id="Gfm"> | ||
| <state /> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| <file leaf-file-name=".travis.yml" pinned="false" current-in-tab="false"> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="9" column="11" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| </file> | ||
| </leaf> | ||
@@ -159,18 +142,23 @@ </component> | ||
| <option value="$PROJECT_DIR$/src/lruCache.js" /> | ||
| <option value="$PROJECT_DIR$/.travis.yml" /> | ||
| <option value="$PROJECT_DIR$/webpack.config.development.js" /> | ||
| <option value="$PROJECT_DIR$/webpack.config.production.js" /> | ||
| <option value="$PROJECT_DIR$/test/memoize.spec.js" /> | ||
| <option value="$PROJECT_DIR$/.eslintrc" /> | ||
| <option value="$PROJECT_DIR$/src/memoize.js" /> | ||
| <option value="$PROJECT_DIR$/src/__tests__/deepEquals.spec.js" /> | ||
| <option value="$PROJECT_DIR$/src/deepEquals.js" /> | ||
| <option value="$PROJECT_DIR$/src/singletonCache.js" /> | ||
| <option value="$PROJECT_DIR$/.travis.yml" /> | ||
| <option value="$PROJECT_DIR$/src/__tests__/memoize.spec.js" /> | ||
| <option value="$PROJECT_DIR$/LICENSE" /> | ||
| <option value="$PROJECT_DIR$/webpack.config.base.js" /> | ||
| <option value="$PROJECT_DIR$/webpack.config.development.js" /> | ||
| <option value="$PROJECT_DIR$/webpack.config.production.js" /> | ||
| <option value="$PROJECT_DIR$/package.json" /> | ||
| <option value="$PROJECT_DIR$/.eslintrc" /> | ||
| </list> | ||
| </option> | ||
| </component> | ||
| <component name="JsBuildToolGruntFileManager" detection-done="true" /> | ||
| <component name="JsBuildToolPackageJson" detection-done="true" /> | ||
| <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
| <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
| <component name="JsGulpfileManager"> | ||
| <detection-done>true</detection-done> | ||
| <sorting>DEFINITION_ORDER</sorting> | ||
| </component> | ||
@@ -180,14 +168,4 @@ <component name="ProjectFrameBounds"> | ||
| <option name="width" value="1280" /> | ||
| <option name="height" value="977" /> | ||
| <option name="height" value="1526" /> | ||
| </component> | ||
| <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | ||
| <OptionsSetting value="true" id="Add" /> | ||
| <OptionsSetting value="true" id="Remove" /> | ||
| <OptionsSetting value="true" id="Checkout" /> | ||
| <OptionsSetting value="true" id="Update" /> | ||
| <OptionsSetting value="true" id="Status" /> | ||
| <OptionsSetting value="true" id="Edit" /> | ||
| <ConfirmationsSetting value="0" id="Add" /> | ||
| <ConfirmationsSetting value="0" id="Remove" /> | ||
| </component> | ||
| <component name="ProjectView"> | ||
@@ -208,2 +186,3 @@ <navigator currentView="ProjectPane" proportions="" version="1"> | ||
| <panes> | ||
| <pane id="PackagesPane" /> | ||
| <pane id="Scope" /> | ||
@@ -217,10 +196,4 @@ <pane id="ProjectPane"> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="lru-memoize" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="lru-memoize" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
@@ -239,16 +212,2 @@ </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="test" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| </PATH> | ||
| <PATH> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="lru-memoize" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="lru-memoize" /> | ||
| <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </PATH_ELEMENT> | ||
| <PATH_ELEMENT> | ||
| <option name="myItemId" value="src" /> | ||
@@ -260,3 +219,2 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> | ||
| </pane> | ||
| <pane id="PackagesPane" /> | ||
| <pane id="Scratches" /> | ||
@@ -271,4 +229,9 @@ </panes> | ||
| <property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" /> | ||
| <property name="nodejs_interpreter_path" value="/usr/local/bin/node" /> | ||
| <property name="nodejs.mocha.mocha_node_package_dir" value="$PROJECT_DIR$/node_modules/mocha" /> | ||
| </component> | ||
| <component name="RecentsManager"> | ||
| <key name="MoveFile.RECENT_KEYS"> | ||
| <recent name="$PROJECT_DIR$/src" /> | ||
| </key> | ||
| <key name="CopyFile.RECENT_KEYS"> | ||
@@ -278,3 +241,15 @@ <recent name="$PROJECT_DIR$" /> | ||
| </component> | ||
| <component name="RunManager"> | ||
| <component name="RunDashboard"> | ||
| <option name="ruleStates"> | ||
| <list> | ||
| <RuleState> | ||
| <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> | ||
| </RuleState> | ||
| <RuleState> | ||
| <option name="name" value="StatusDashboardGroupingRule" /> | ||
| </RuleState> | ||
| </list> | ||
| </option> | ||
| </component> | ||
| <component name="RunManager" selected="Mocha.Mocha"> | ||
| <configuration default="true" type="Applet" factoryName="Applet"> | ||
@@ -363,22 +338,2 @@ <option name="HTML_USED" value="false" /> | ||
| </configuration> | ||
| <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All"> | ||
| <module name="" /> | ||
| <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> | ||
| <option name="ALTERNATIVE_JRE_PATH" /> | ||
| <option name="PACKAGE_NAME" /> | ||
| <option name="MAIN_CLASS_NAME" /> | ||
| <option name="METHOD_NAME" /> | ||
| <option name="TEST_OBJECT" value="class" /> | ||
| <option name="VM_PARAMETERS" /> | ||
| <option name="PARAMETERS" /> | ||
| <option name="WORKING_DIRECTORY" /> | ||
| <option name="ENV_VARIABLES" /> | ||
| <option name="PASS_PARENT_ENVS" value="true" /> | ||
| <option name="TEST_SEARCH_SCOPE"> | ||
| <value defaultName="singleModule" /> | ||
| </option> | ||
| <envs /> | ||
| <patterns /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JarApplication" factoryName="JAR Application"> | ||
@@ -403,2 +358,15 @@ <envs /> | ||
| </configuration> | ||
| <configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest"> | ||
| <node-interpreter value="project" /> | ||
| <working-dir value="" /> | ||
| <envs /> | ||
| <scope-kind value="ALL" /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor"> | ||
| <config-file value="" /> | ||
| <node-interpreter value="project" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> | ||
@@ -419,5 +387,16 @@ <method /> | ||
| </configuration> | ||
| <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" working-dir=""> | ||
| <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script"> | ||
| <option name="filePath" /> | ||
| <option name="vmParameters" /> | ||
| <option name="alternativeJrePath" /> | ||
| <option name="programParameters" /> | ||
| <option name="passParentEnvs" value="true" /> | ||
| <option name="workingDirectory" /> | ||
| <option name="isAlternativeJrePathEnabled" value="false" /> | ||
| <envs /> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir=""> | ||
| <method /> | ||
| </configuration> | ||
| <configuration default="true" type="Remote" factoryName="Remote"> | ||
@@ -432,2 +411,3 @@ <option name="USE_SOCKET_TRANSPORT" value="true" /> | ||
| <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> | ||
| <node-interpreter>project</node-interpreter> | ||
| <node-options /> | ||
@@ -441,4 +421,5 @@ <gulpfile /> | ||
| <configuration default="true" type="js.build_tools.npm" factoryName="npm"> | ||
| <command value="run-script" /> | ||
| <command value="run" /> | ||
| <scripts /> | ||
| <node-interpreter value="project" /> | ||
| <envs /> | ||
@@ -448,2 +429,3 @@ <method /> | ||
| <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha"> | ||
| <node-interpreter /> | ||
| <node-options /> | ||
@@ -460,2 +442,17 @@ <working-directory>$PROJECT_DIR$</working-directory> | ||
| </configuration> | ||
| <configuration default="false" name="Mocha" type="mocha-javascript-test-runner" factoryName="Mocha"> | ||
| <node-interpreter>project</node-interpreter> | ||
| <node-options /> | ||
| <working-directory>$PROJECT_DIR$</working-directory> | ||
| <pass-parent-env>true</pass-parent-env> | ||
| <envs /> | ||
| <ui>bdd</ui> | ||
| <extra-mocha-options>--compilers js:babel-register --recursive</extra-mocha-options> | ||
| <test-kind>PATTERN</test-kind> | ||
| <test-pattern>./src/**/__tests__/*</test-pattern> | ||
| <method /> | ||
| </configuration> | ||
| <list size="1"> | ||
| <item index="0" class="java.lang.String" itemvalue="Mocha.Mocha" /> | ||
| </list> | ||
| <configuration name="<template>" type="TestNG" default="true" selected="false"> | ||
@@ -471,3 +468,5 @@ <option name="MAIN_CLASS_NAME" /> | ||
| </component> | ||
| <component name="ShelveChangesManager" show_recycled="false" /> | ||
| <component name="ShelveChangesManager" show_recycled="false"> | ||
| <option name="remove_strategy" value="false" /> | ||
| </component> | ||
| <component name="TaskManager"> | ||
@@ -478,2 +477,3 @@ <task active="true" id="Default" summary="Default task"> | ||
| <option name="number" value="Default" /> | ||
| <option name="presentableId" value="Default" /> | ||
| <updated>1439804144560</updated> | ||
@@ -484,2 +484,3 @@ </task> | ||
| <option name="number" value="00001" /> | ||
| <option name="presentableId" value="LOCAL-00001" /> | ||
| <option name="project" value="LOCAL" /> | ||
@@ -491,2 +492,3 @@ <updated>1439804341953</updated> | ||
| <option name="number" value="00002" /> | ||
| <option name="presentableId" value="LOCAL-00002" /> | ||
| <option name="project" value="LOCAL" /> | ||
@@ -498,2 +500,3 @@ <updated>1443653582053</updated> | ||
| <option name="number" value="00003" /> | ||
| <option name="presentableId" value="LOCAL-00003" /> | ||
| <option name="project" value="LOCAL" /> | ||
@@ -505,2 +508,3 @@ <updated>1443653887477</updated> | ||
| <option name="number" value="00004" /> | ||
| <option name="presentableId" value="LOCAL-00004" /> | ||
| <option name="project" value="LOCAL" /> | ||
@@ -512,9 +516,38 @@ <updated>1446487948219</updated> | ||
| </component> | ||
| <component name="TestHistory"> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 16m 05s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 17m 28s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 21m 09s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 21m 37s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 22m 09s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 23m 38s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 23m 59s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 24m 56s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 25m 05s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| <history-entry file="Mocha - 2017.04.18 at 10h 26m 06s.xml"> | ||
| <configuration name="Mocha" configurationId="mocha-javascript-test-runner" /> | ||
| </history-entry> | ||
| </component> | ||
| <component name="ToolWindowManager"> | ||
| <frame x="0" y="23" width="1280" height="977" extended-state="0" /> | ||
| <editor active="false" /> | ||
| <frame x="0" y="23" width="1280" height="1526" extended-state="0" /> | ||
| <editor active="true" /> | ||
| <layout> | ||
| <window_info id="GfmBrowser" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24959612" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> | ||
@@ -524,7 +557,12 @@ <window_info id="Palette	" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2536349" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> | ||
| <window_info id="GfmBrowser" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> | ||
@@ -536,8 +574,10 @@ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> | ||
| <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> | ||
| <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> | ||
| </layout> | ||
| </component> | ||
| <component name="TypeScriptGeneratedFilesManager"> | ||
| <option name="processedProjectFiles" value="true" /> | ||
| </component> | ||
| <component name="Vcs.Log.UiProperties"> | ||
@@ -566,6 +606,6 @@ <option name="RECENTLY_FILTERED_USER_GROUPS"> | ||
| <component name="editorHistoryManager"> | ||
| <entry file="file://$PROJECT_DIR$/src/deepEquals.js"> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.development.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <state relative-caret-position="252"> | ||
| <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -575,6 +615,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/singletonCache.js"> | ||
| <entry file="file://$PROJECT_DIR$/src/index.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -584,6 +624,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/lruCache.js"> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.production.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <state relative-caret-position="288"> | ||
| <caret line="16" column="2" lean-forward="true" selection-start-line="16" selection-start-column="2" selection-end-line="16" selection-end-column="2" /> | ||
| <folding /> | ||
@@ -593,6 +633,50 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.eslintrc"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="216"> | ||
| <caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="432"> | ||
| <caret line="24" column="18" lean-forward="false" selection-start-line="24" selection-start-column="18" selection-end-line="24" selection-end-column="18" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="162"> | ||
| <caret line="9" column="11" lean-forward="false" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="10" column="2" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <state relative-caret-position="144"> | ||
| <caret line="10" column="2" lean-forward="false" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/deepEquals.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="19" lean-forward="false" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1639:1641" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/singletonCache.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="4" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <folding /> | ||
@@ -602,6 +686,26 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/lruCache.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="4" column="17" lean-forward="false" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="48:725" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="0"> | ||
| <caret line="10" column="2" lean-forward="false" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -613,5 +717,10 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="20" column="4" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="20" column="4" lean-forward="false" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="78:174" ph="{...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="91:170" ph="[...]" /> | ||
| <marker date="1492504619000" expanded="true" signature="186:243" ph="{"library": 'LruMemoize'...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="256:285" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -622,4 +731,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -631,4 +740,4 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="16" column="3" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="16" column="3" lean-forward="false" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" /> | ||
| <folding /> | ||
@@ -640,8 +749,5 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="3" column="19" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" /> | ||
| <folding> | ||
| <marker date="1451729625000" expanded="true" signature="48:110" placeholder="{"browser": true...}" /> | ||
| <marker date="1451729625000" expanded="true" signature="123:238" placeholder="{"comma-dangle": 0...}" /> | ||
| </folding> | ||
| <state relative-caret-position="0"> | ||
| <caret line="3" column="19" lean-forward="false" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" /> | ||
| <folding /> | ||
| </state> | ||
@@ -652,4 +758,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="9" column="11" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="9" column="11" lean-forward="false" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <folding /> | ||
@@ -661,5 +767,7 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="19" lean-forward="false" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1639:1641" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -670,4 +778,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="4" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <folding /> | ||
@@ -679,5 +787,7 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="4" column="17" lean-forward="false" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="48:725" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -688,5 +798,7 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="10" column="2" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="10" column="2" lean-forward="false" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -697,4 +809,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="39" column="35" selection-start-line="39" selection-start-column="35" selection-end-line="39" selection-end-column="35" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="39" column="35" lean-forward="false" selection-start-line="39" selection-start-column="35" selection-end-line="39" selection-end-column="35" /> | ||
| <folding /> | ||
@@ -706,5 +818,10 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="20" column="4" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="20" column="4" lean-forward="false" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="78:174" ph="{...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="91:170" ph="[...]" /> | ||
| <marker date="1492504619000" expanded="true" signature="186:243" ph="{"library": 'LruMemoize'...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="256:285" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -715,4 +832,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -724,4 +841,4 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -733,8 +850,5 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="3" column="19" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" /> | ||
| <folding> | ||
| <marker date="1451729625000" expanded="true" signature="48:110" placeholder="{"browser": true...}" /> | ||
| <marker date="1451729625000" expanded="true" signature="123:238" placeholder="{"comma-dangle": 0...}" /> | ||
| </folding> | ||
| <state relative-caret-position="0"> | ||
| <caret line="3" column="19" lean-forward="false" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" /> | ||
| <folding /> | ||
| </state> | ||
@@ -745,4 +859,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="9" column="11" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="9" column="11" lean-forward="false" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <folding /> | ||
@@ -752,6 +866,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/test/deepEquals.spec.js"> | ||
| <entry file="file://$PROJECT_DIR$/src/__tests__/deepEquals.spec.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="71" column="55" selection-start-line="71" selection-start-column="55" selection-end-line="71" selection-end-column="55" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="71" column="55" lean-forward="false" selection-start-line="71" selection-start-column="55" selection-end-line="71" selection-end-column="55" /> | ||
| </state> | ||
@@ -762,5 +876,7 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="19" lean-forward="false" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1639:1641" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -771,4 +887,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="11" column="4" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <folding /> | ||
@@ -780,5 +896,7 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="4" column="17" lean-forward="false" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="48:725" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -789,5 +907,7 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="10" column="2" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="10" column="2" lean-forward="false" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
@@ -798,4 +918,4 @@ </provider> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="12" column="62" selection-start-line="12" selection-start-column="62" selection-end-line="12" selection-end-column="62" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="12" column="62" lean-forward="false" selection-start-line="12" selection-start-column="62" selection-end-line="12" selection-end-column="62" /> | ||
| <folding /> | ||
@@ -807,29 +927,27 @@ </state> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1451729625000" expanded="true" signature="48:110" placeholder="{"browser": true...}" /> | ||
| <marker date="1451729625000" expanded="true" signature="123:238" placeholder="{"comma-dangle": 0...}" /> | ||
| </folding> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/test/deepEquals.spec.js"> | ||
| <entry file="file://$PROJECT_DIR$/src/__tests__/deepEquals.spec.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <state relative-caret-position="0"> | ||
| <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/test/deepEquals.spec.js"> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="71" column="55" selection-start-line="71" selection-start-column="55" selection-end-line="71" selection-end-column="55" /> | ||
| <state relative-caret-position="216"> | ||
| <caret line="12" column="11" lean-forward="false" selection-start-line="12" selection-start-column="11" selection-end-line="12" selection-end-column="11" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/lruCache.js"> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" /> | ||
| <state relative-caret-position="432"> | ||
| <caret line="24" column="18" lean-forward="false" selection-start-line="24" selection-start-column="18" selection-end-line="24" selection-end-column="18" /> | ||
| <folding /> | ||
@@ -839,6 +957,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/deepEquals.js"> | ||
| <entry file="file://$PROJECT_DIR$/.babelrc"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" /> | ||
| <state relative-caret-position="90"> | ||
| <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -848,14 +966,16 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/singletonCache.js"> | ||
| <entry file="file://$PROJECT_DIR$/src/lruCache.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" /> | ||
| <folding /> | ||
| <state relative-caret-position="270"> | ||
| <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="48:725" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.travis.yml"> | ||
| <entry file="file://$PROJECT_DIR$/src/index.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="9" column="11" selection-start-line="9" selection-start-column="11" selection-end-line="9" selection-end-column="11" /> | ||
| <state relative-caret-position="54"> | ||
| <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -865,6 +985,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.production.js"> | ||
| <entry file="file://$PROJECT_DIR$/.eslintrc"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="16" column="3" selection-start-line="16" selection-start-column="3" selection-end-line="16" selection-end-column="3" /> | ||
| <state relative-caret-position="54"> | ||
| <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -874,17 +994,18 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <entry file="file://$PROJECT_DIR$/src/deepEquals.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-23.125"> | ||
| <caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" /> | ||
| <folding /> | ||
| <state relative-caret-position="684"> | ||
| <caret line="58" column="0" lean-forward="false" selection-start-line="58" selection-start-column="0" selection-end-line="58" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1639:1641" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/.eslintrc"> | ||
| <entry file="file://$PROJECT_DIR$/src/singletonCache.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-7.5"> | ||
| <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" /> | ||
| <state relative-caret-position="126"> | ||
| <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1451729625000" expanded="true" signature="48:110" placeholder="{"browser": true...}" /> | ||
| <marker date="1451729625000" expanded="true" signature="123:238" placeholder="{"comma-dangle": 0...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="47:237" ph="{...}" /> | ||
| </folding> | ||
@@ -894,20 +1015,32 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/README.md"> | ||
| <entry file="file://$PROJECT_DIR$/src/__tests__/memoize.spec.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="-7.413793"> | ||
| <caret line="24" column="18" selection-start-line="24" selection-start-column="18" selection-end-line="24" selection-end-column="18" /> | ||
| <state relative-caret-position="587"> | ||
| <caret line="149" column="0" lean-forward="false" selection-start-line="149" selection-start-column="0" selection-end-line="149" selection-end-column="0" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="MarkdownPreviewEditor"> | ||
| <state /> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/__tests__/deepEquals.spec.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="54"> | ||
| <caret line="3" column="26" lean-forward="false" selection-start-line="3" selection-start-column="26" selection-end-line="3" selection-end-column="26" /> | ||
| <folding /> | ||
| </state> | ||
| </provider> | ||
| <provider editor-type-id="Gfm"> | ||
| <state /> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="522"> | ||
| <caret line="29" column="14" lean-forward="false" selection-start-line="29" selection-start-column="14" selection-end-line="29" selection-end-column="14" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="1596:1598" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.base.js"> | ||
| <entry file="file://$PROJECT_DIR$/LICENSE"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="20" column="4" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="4" /> | ||
| <state relative-caret-position="54"> | ||
| <caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -917,6 +1050,19 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.base.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state relative-caret-position="72"> | ||
| <caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> | ||
| <folding> | ||
| <marker date="1492504619000" expanded="true" signature="78:174" ph="{...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="91:170" ph="[...]" /> | ||
| <marker date="1492504619000" expanded="true" signature="186:243" ph="{"library": 'LruMemoize'...}" /> | ||
| <marker date="1492504619000" expanded="true" signature="256:285" ph="{...}" /> | ||
| </folding> | ||
| </state> | ||
| </provider> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.development.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> | ||
| <state relative-caret-position="252"> | ||
| <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> | ||
| <folding /> | ||
@@ -926,6 +1072,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/index.js"> | ||
| <entry file="file://$PROJECT_DIR$/webpack.config.production.js"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.0"> | ||
| <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> | ||
| <state relative-caret-position="234"> | ||
| <caret line="13" column="20" lean-forward="false" selection-start-line="13" selection-start-column="20" selection-end-line="13" selection-end-column="20" /> | ||
| <folding /> | ||
@@ -935,6 +1081,6 @@ </state> | ||
| </entry> | ||
| <entry file="file://$PROJECT_DIR$/src/memoize.js"> | ||
| <entry file="file://$PROJECT_DIR$/package.json"> | ||
| <provider selected="true" editor-type-id="text-editor"> | ||
| <state vertical-scroll-proportion="0.18050541"> | ||
| <caret line="10" column="2" selection-start-line="10" selection-start-column="2" selection-end-line="10" selection-end-column="2" /> | ||
| <state relative-caret-position="36"> | ||
| <caret line="2" column="18" lean-forward="false" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" /> | ||
| <folding /> | ||
@@ -941,0 +1087,0 @@ </state> |
+11
-3
| language: node_js | ||
| before_install: | ||
| - npm install -g npm@latest | ||
| node_js: | ||
| - "0.12" | ||
| - "4.0" | ||
| - "6" | ||
| - "5" | ||
| - "4" | ||
| - "stable" | ||
| script: | ||
| - npm run lint | ||
| - npm test | ||
| - npm test | ||
| after_success: | ||
| - npm run test:cov | ||
| - npm run test:codecov |
+249
-186
@@ -14,39 +14,65 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
| /******/ var installedModules = {}; | ||
| /******/ | ||
| /******/ // The require function | ||
| /******/ function __webpack_require__(moduleId) { | ||
| /******/ | ||
| /******/ // Check if module is in cache | ||
| /******/ if(installedModules[moduleId]) | ||
| /******/ if(installedModules[moduleId]) { | ||
| /******/ return installedModules[moduleId].exports; | ||
| /******/ } | ||
| /******/ // Create a new module (and put it into the cache) | ||
| /******/ var module = installedModules[moduleId] = { | ||
| /******/ exports: {}, | ||
| /******/ id: moduleId, | ||
| /******/ loaded: false | ||
| /******/ i: moduleId, | ||
| /******/ l: false, | ||
| /******/ exports: {} | ||
| /******/ }; | ||
| /******/ | ||
| /******/ // Execute the module function | ||
| /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
| /******/ | ||
| /******/ // Flag the module as loaded | ||
| /******/ module.loaded = true; | ||
| /******/ module.l = true; | ||
| /******/ | ||
| /******/ // Return the exports of the module | ||
| /******/ return module.exports; | ||
| /******/ } | ||
| /******/ | ||
| /******/ | ||
| /******/ // expose the modules object (__webpack_modules__) | ||
| /******/ __webpack_require__.m = modules; | ||
| /******/ | ||
| /******/ // expose the module cache | ||
| /******/ __webpack_require__.c = installedModules; | ||
| /******/ | ||
| /******/ // identity function for calling harmony imports with the correct context | ||
| /******/ __webpack_require__.i = function(value) { return value; }; | ||
| /******/ | ||
| /******/ // define getter function for harmony exports | ||
| /******/ __webpack_require__.d = function(exports, name, getter) { | ||
| /******/ if(!__webpack_require__.o(exports, name)) { | ||
| /******/ Object.defineProperty(exports, name, { | ||
| /******/ configurable: false, | ||
| /******/ enumerable: true, | ||
| /******/ get: getter | ||
| /******/ }); | ||
| /******/ } | ||
| /******/ }; | ||
| /******/ | ||
| /******/ // getDefaultExport function for compatibility with non-harmony modules | ||
| /******/ __webpack_require__.n = function(module) { | ||
| /******/ var getter = module && module.__esModule ? | ||
| /******/ function getDefault() { return module['default']; } : | ||
| /******/ function getModuleExports() { return module; }; | ||
| /******/ __webpack_require__.d(getter, 'a', getter); | ||
| /******/ return getter; | ||
| /******/ }; | ||
| /******/ | ||
| /******/ // Object.prototype.hasOwnProperty.call | ||
| /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
| /******/ | ||
| /******/ // __webpack_public_path__ | ||
| /******/ __webpack_require__.p = ""; | ||
| /******/ | ||
| /******/ // Load entry module and return exports | ||
| /******/ return __webpack_require__(0); | ||
| /******/ return __webpack_require__(__webpack_require__.s = 2); | ||
| /******/ }) | ||
@@ -56,222 +82,259 @@ /************************************************************************/ | ||
| /* 0 */ | ||
| /***/ function(module, exports, __webpack_require__) { | ||
| /***/ (function(module, exports, __webpack_require__) { | ||
| 'use strict'; | ||
| "use strict"; | ||
| exports.__esModule = true; | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
| exports.__esModule = true; | ||
| exports.default = memoize; | ||
| var _memoize = __webpack_require__(3); | ||
| var _deepEquals = __webpack_require__(1); | ||
| var _memoize2 = _interopRequireDefault(_memoize); | ||
| var _deepEquals2 = _interopRequireDefault(_deepEquals); | ||
| exports['default'] = _memoize2['default']; | ||
| module.exports = exports['default']; | ||
| var _lruCache = __webpack_require__(3); | ||
| /***/ }, | ||
| /* 1 */ | ||
| /***/ function(module, exports) { | ||
| var _lruCache2 = _interopRequireDefault(_lruCache); | ||
| 'use strict'; | ||
| var _singletonCache = __webpack_require__(4); | ||
| exports.__esModule = true; | ||
| exports['default'] = deepEquals; | ||
| var hasOwn = Object.prototype.hasOwnProperty; | ||
| var _singletonCache2 = _interopRequireDefault(_singletonCache); | ||
| function deepEquals(equals, deepObjects) { | ||
| function deep(valueA, valueB) { | ||
| if (equals(valueA, valueB)) { | ||
| return true; | ||
| } | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| if (Array.isArray(valueA)) { | ||
| if (!Array.isArray(valueB) || valueA.length !== valueB.length) { | ||
| return false; | ||
| } | ||
| for (var index = 0; index < valueA.length; index++) { | ||
| if (!deep(valueA[index], valueB[index])) { | ||
| return false; | ||
| } | ||
| } | ||
| // could not find unequal items | ||
| return true; | ||
| } | ||
| function createCache(limit, equals) { | ||
| return limit === 1 ? (0, _singletonCache2.default)(equals) : (0, _lruCache2.default)(limit, equals); | ||
| } | ||
| if (Array.isArray(valueB)) { | ||
| return false; | ||
| } | ||
| function createEqualsFn(basicEquals, deepObjects) { | ||
| // Choose strategy for basic or deep object equals | ||
| var equals = deepObjects ? (0, _deepEquals2.default)(basicEquals, deepObjects) : basicEquals; | ||
| if (typeof valueA === 'object') { | ||
| if (typeof valueB !== 'object') { | ||
| return false; | ||
| } | ||
| return function (valueA, valueB) { | ||
| // The arguments are always the argument array-like objects | ||
| var isANull = valueA === null; | ||
| var isBNull = valueB === null; | ||
| if (isANull || isBNull) { | ||
| return isANull === isBNull; | ||
| } | ||
| // Different lengths means they are not the same | ||
| if (valueA.length !== valueB.length) { | ||
| return false; | ||
| } | ||
| var aKeys = Object.keys(valueA); | ||
| var bKeys = Object.keys(valueB); | ||
| // Compare the values | ||
| for (var index = 0; index < valueA.length; index += 1) { | ||
| if (!equals(valueA[index], valueB[index])) { | ||
| return false; | ||
| } | ||
| } | ||
| // Found no conflicts | ||
| return true; | ||
| }; | ||
| } | ||
| if (aKeys.length !== bKeys.length) { | ||
| return false; | ||
| } | ||
| function memoize() { | ||
| var limit = 1; | ||
| var equals = function equals(valueA, valueB) { | ||
| return valueA === valueB; | ||
| }; | ||
| var deepObjects = false; | ||
| for (var index = 0; index < aKeys.length; index++) { | ||
| var key = aKeys[index]; | ||
| if (hasOwn.call(valueA, key) && (!hasOwn.call(valueB, key) || !(deepObjects ? deep : equals)(valueA[key], valueB[key]))) { | ||
| return false; | ||
| } | ||
| } | ||
| // could not find unequal keys or values | ||
| return true; | ||
| } | ||
| return false; | ||
| } | ||
| for (var _len = arguments.length, config = Array(_len), _key = 0; _key < _len; _key++) { | ||
| config[_key] = arguments[_key]; | ||
| } | ||
| return deep; | ||
| } | ||
| if (typeof config[0] === 'number') { | ||
| limit = config.shift(); | ||
| } | ||
| if (typeof config[0] === 'function') { | ||
| equals = config.shift(); | ||
| } else if (typeof config[0] === 'undefined') { | ||
| // Support passing undefined equal argument; | ||
| config.shift(); | ||
| } | ||
| if (typeof config[0] === 'boolean') { | ||
| deepObjects = config[0]; | ||
| } | ||
| module.exports = exports['default']; | ||
| var cache = createCache(limit, createEqualsFn(equals, deepObjects)); | ||
| /***/ }, | ||
| /* 2 */ | ||
| /***/ function(module, exports) { | ||
| return function (fn) { | ||
| return function () { | ||
| for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
| args[_key2] = arguments[_key2]; | ||
| } | ||
| "use strict"; | ||
| var value = cache.get(args); | ||
| if (value === undefined) { | ||
| value = fn.apply(fn, args); | ||
| cache.put(args, value); | ||
| } | ||
| return value; | ||
| }; | ||
| }; | ||
| } | ||
| exports.__esModule = true; | ||
| exports["default"] = lruCache; | ||
| /***/ }), | ||
| /* 1 */ | ||
| /***/ (function(module, exports, __webpack_require__) { | ||
| function lruCache(limit, equals) { | ||
| var entries = []; | ||
| "use strict"; | ||
| function get(key) { | ||
| for (var index = 0; index < entries.length; index++) { | ||
| var entry = entries[index]; | ||
| if (equals(key, entry.key)) { | ||
| if (index > 0) { | ||
| // move this entry to the top of the cache | ||
| entries.splice(index, 1); | ||
| entries.unshift(entry); | ||
| } | ||
| return entry.value; | ||
| } | ||
| } | ||
| } | ||
| function put(key, value) { | ||
| if (!get(key)) { | ||
| entries.unshift({ key: key, value: value }); | ||
| if (entries.length > limit) { | ||
| entries.pop(); | ||
| } | ||
| } | ||
| } | ||
| exports.__esModule = true; | ||
| return { get: get, put: put }; | ||
| } | ||
| var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
| module.exports = exports["default"]; | ||
| exports.default = deepEquals; | ||
| var hasOwn = function hasOwn(object, key) { | ||
| return Object.prototype.hasOwnProperty.call(object, key); | ||
| }; | ||
| function deepEquals(equals, deepObjects) { | ||
| function deep(valueA, valueB) { | ||
| if (equals(valueA, valueB)) { | ||
| return true; | ||
| } | ||
| /***/ }, | ||
| /* 3 */ | ||
| /***/ function(module, exports, __webpack_require__) { | ||
| if (Array.isArray(valueA)) { | ||
| if (!Array.isArray(valueB) || valueA.length !== valueB.length) { | ||
| return false; | ||
| } | ||
| 'use strict'; | ||
| // Check deep equality of each value in A against the same indexed value in B | ||
| if (!valueA.every(function (value, index) { | ||
| return deep(value, valueB[index]); | ||
| })) { | ||
| return false; | ||
| } | ||
| exports.__esModule = true; | ||
| exports['default'] = memoize; | ||
| // could not find unequal items | ||
| return true; | ||
| } | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
| if (Array.isArray(valueB)) { | ||
| return false; | ||
| } | ||
| var _singletonCache = __webpack_require__(4); | ||
| if ((typeof valueA === 'undefined' ? 'undefined' : _typeof(valueA)) === 'object') { | ||
| if ((typeof valueB === 'undefined' ? 'undefined' : _typeof(valueB)) !== 'object') { | ||
| return false; | ||
| } | ||
| var _singletonCache2 = _interopRequireDefault(_singletonCache); | ||
| var isANull = valueA === null; | ||
| var isBNull = valueB === null; | ||
| if (isANull || isBNull) { | ||
| return isANull === isBNull; | ||
| } | ||
| var _lruCache = __webpack_require__(2); | ||
| var aKeys = Object.keys(valueA); | ||
| var bKeys = Object.keys(valueB); | ||
| var _lruCache2 = _interopRequireDefault(_lruCache); | ||
| if (aKeys.length !== bKeys.length) { | ||
| return false; | ||
| } | ||
| var _deepEquals = __webpack_require__(1); | ||
| // Should we compare with shallow equivalence or deep equivalence? | ||
| var equalityChecker = deepObjects ? deep : equals; | ||
| var _deepEquals2 = _interopRequireDefault(_deepEquals); | ||
| // Check if objects share same keys, and each of those keys are equal | ||
| if (!aKeys.every(function (aKey) { | ||
| return hasOwn(valueA, aKey) && hasOwn(valueB, aKey) && equalityChecker(valueA[aKey], valueB[aKey]); | ||
| })) { | ||
| return false; | ||
| } | ||
| function createCache(limit, equals) { | ||
| return limit === 1 ? _singletonCache2['default'](equals) : _lruCache2['default'](limit, equals); | ||
| } | ||
| // could not find unequal keys or values | ||
| return true; | ||
| } | ||
| return false; | ||
| } | ||
| function memoize() { | ||
| var limit = 1; | ||
| var equals = function equals(valueA, valueB) { | ||
| return valueA === valueB; | ||
| }; | ||
| var deepObjects = false; | ||
| return deep; | ||
| } | ||
| for (var _len = arguments.length, config = Array(_len), _key = 0; _key < _len; _key++) { | ||
| config[_key] = arguments[_key]; | ||
| } | ||
| /***/ }), | ||
| /* 2 */ | ||
| /***/ (function(module, exports, __webpack_require__) { | ||
| if (typeof config[0] === 'number') { | ||
| limit = config.shift(); | ||
| } | ||
| if (typeof config[0] === 'function') { | ||
| equals = config.shift(); | ||
| } | ||
| if (typeof config[0] === 'boolean') { | ||
| deepObjects = config[0]; | ||
| } | ||
| "use strict"; | ||
| var cache = createCache(limit, _deepEquals2['default'](equals, deepObjects)); | ||
| return function (fn) { | ||
| return function () { | ||
| for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
| args[_key2] = arguments[_key2]; | ||
| } | ||
| exports.__esModule = true; | ||
| var value = cache.get(args); | ||
| if (value === undefined) { | ||
| value = fn.apply(fn, args); | ||
| cache.put(args, value); | ||
| } | ||
| return value; | ||
| }; | ||
| }; | ||
| } | ||
| var _memoize = __webpack_require__(0); | ||
| module.exports = exports['default']; | ||
| var _memoize2 = _interopRequireDefault(_memoize); | ||
| /***/ }, | ||
| /* 4 */ | ||
| /***/ function(module, exports) { | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| "use strict"; | ||
| exports.default = _memoize2.default; | ||
| exports.__esModule = true; | ||
| exports["default"] = singletonCache; | ||
| /***/ }), | ||
| /* 3 */ | ||
| /***/ (function(module, exports, __webpack_require__) { | ||
| function singletonCache(equals) { | ||
| var entry = undefined; | ||
| return { | ||
| get: function get(key) { | ||
| if (entry && equals(key, entry.key)) { | ||
| return entry.value; | ||
| } | ||
| }, | ||
| "use strict"; | ||
| put: function put(key, value) { | ||
| entry = { key: key, value: value }; | ||
| } | ||
| }; | ||
| } | ||
| module.exports = exports["default"]; | ||
| exports.__esModule = true; | ||
| exports.default = lruCache; | ||
| function lruCache(limit, equals) { | ||
| var entries = []; | ||
| /***/ } | ||
| /******/ ]) | ||
| }); | ||
| ; | ||
| function get(key) { | ||
| var cacheIndex = entries.findIndex(function (entry) { | ||
| return equals(key, entry.key); | ||
| }); | ||
| // We found a cached entry | ||
| if (cacheIndex > -1) { | ||
| var entry = entries[cacheIndex]; | ||
| // Cached entry not at top of cache, move it to the top | ||
| if (cacheIndex > 0) { | ||
| entries.slice(cacheIndex, 1); | ||
| entries.unshift(entry); | ||
| } | ||
| return entry.value; | ||
| } | ||
| // No entry found in cache, return null | ||
| return undefined; | ||
| } | ||
| function put(key, value) { | ||
| if (!get(key)) { | ||
| entries.unshift({ key: key, value: value }); | ||
| if (entries.length > limit) { | ||
| entries.pop(); | ||
| } | ||
| } | ||
| } | ||
| return { get: get, put: put }; | ||
| } | ||
| /***/ }), | ||
| /* 4 */ | ||
| /***/ (function(module, exports, __webpack_require__) { | ||
| "use strict"; | ||
| exports.__esModule = true; | ||
| exports.default = singletonCache; | ||
| function singletonCache(equals) { | ||
| var entry = void 0; | ||
| return { | ||
| get: function get(key) { | ||
| if (entry && equals(key, entry.key)) { | ||
| return entry.value; | ||
| } | ||
| }, | ||
| put: function put(key, value) { | ||
| entry = { key: key, value: value }; | ||
| } | ||
| }; | ||
| } | ||
| /***/ }) | ||
| /******/ ]); | ||
| }); |
@@ -1,1 +0,1 @@ | ||
| !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LruMemoize=t():e.LruMemoize=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var u=r[n]={exports:{},id:n,loaded:!1};return e[n].call(u.exports,u,u.exports,t),u.loaded=!0,u.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var u=r(3),o=n(u);t.default=o.default,e.exports=t.default},function(e,t){"use strict";function r(e,t){function r(u,o){if(e(u,o))return!0;if(Array.isArray(u)){if(!Array.isArray(o)||u.length!==o.length)return!1;for(var f=0;f<u.length;f++)if(!r(u[f],o[f]))return!1;return!0}if(Array.isArray(o))return!1;if("object"==typeof u){if("object"!=typeof o)return!1;var i=null===u,a=null===o;if(i||a)return i===a;var l=Object.keys(u),s=Object.keys(o);if(l.length!==s.length)return!1;for(var f=0;f<l.length;f++){var c=l[f];if(n.call(u,c)&&(!n.call(o,c)||!(t?r:e)(u[c],o[c])))return!1}return!0}return!1}return r}t.__esModule=!0,t.default=r;var n=Object.prototype.hasOwnProperty;e.exports=t.default},function(e,t){"use strict";function r(e,t){function r(e){for(var r=0;r<u.length;r++){var n=u[r];if(t(e,n.key))return r>0&&(u.splice(r,1),u.unshift(n)),n.value}}function n(t,n){r(t)||(u.unshift({key:t,value:n}),u.length>e&&u.pop())}var u=[];return{get:r,put:n}}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function u(e,t){return 1===e?i.default(t):l.default(e,t)}function o(){for(var e=1,t=function(e,t){return e===t},r=!1,n=arguments.length,o=Array(n),f=0;n>f;f++)o[f]=arguments[f];"number"==typeof o[0]&&(e=o.shift()),"function"==typeof o[0]&&(t=o.shift()),"boolean"==typeof o[0]&&(r=o[0]);var i=u(e,c.default(t,r));return function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;t>n;n++)r[n]=arguments[n];var u=i.get(r);return void 0===u&&(u=e.apply(e,r),i.put(r,u)),u}}}t.__esModule=!0,t.default=o;var f=r(4),i=n(f),a=r(2),l=n(a),s=r(1),c=n(s);e.exports=t.default},function(e,t){"use strict";function r(e){var t=void 0;return{get:function(r){return t&&e(r,t.key)?t.value:void 0},put:function(e,r){t={key:e,value:r}}}}t.__esModule=!0,t.default=r,e.exports=t.default}])}); | ||
| !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.LruMemoize=e():t.LruMemoize=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=2)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function u(t,e){return 1===t?(0,y.default)(e):(0,a.default)(t,e)}function o(t,e){var n=e?(0,c.default)(t,e):t;return function(t,e){if(t.length!==e.length)return!1;for(var r=0;r<t.length;r+=1)if(!n(t[r],e[r]))return!1;return!0}}function f(){for(var t=1,e=function(t,e){return t===e},n=!1,r=arguments.length,f=Array(r),i=0;i<r;i++)f[i]=arguments[i];"number"==typeof f[0]&&(t=f.shift()),"function"==typeof f[0]?e=f.shift():void 0===f[0]&&f.shift(),"boolean"==typeof f[0]&&(n=f[0]);var c=u(t,o(e,n));return function(t){return function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];var u=c.get(n);return void 0===u&&(u=t.apply(t,n),c.put(n,u)),u}}}e.__esModule=!0,e.default=f;var i=n(1),c=r(i),l=n(3),a=r(l),s=n(4),y=r(s)},function(t,e,n){"use strict";function r(t,e){function n(r,f){if(t(r,f))return!0;if(Array.isArray(r))return!(!Array.isArray(f)||r.length!==f.length)&&!!r.every(function(t,e){return n(t,f[e])});if(Array.isArray(f))return!1;if("object"===(void 0===r?"undefined":u(r))){if("object"!==(void 0===f?"undefined":u(f)))return!1;var i=null===r,c=null===f;if(i||c)return i===c;var l=Object.keys(r),a=Object.keys(f);if(l.length!==a.length)return!1;var s=e?n:t;return!!l.every(function(t){return o(r,t)&&o(f,t)&&s(r[t],f[t])})}return!1}return n}e.__esModule=!0;var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.default=r;var o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}},function(t,e,n){"use strict";e.__esModule=!0;var r=n(0),u=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=u.default},function(t,e,n){"use strict";function r(t,e){function n(t){var n=u.findIndex(function(n){return e(t,n.key)});if(n>-1){var r=u[n];return n>0&&(u.slice(n,1),u.unshift(r)),r.value}}function r(e,r){n(e)||(u.unshift({key:e,value:r}),u.length>t&&u.pop())}var u=[];return{get:n,put:r}}e.__esModule=!0,e.default=r},function(t,e,n){"use strict";function r(t){var e=void 0;return{get:function(n){if(e&&t(n,e.key))return e.value},put:function(t,n){e={key:t,value:n}}}}e.__esModule=!0,e.default=r}])}); |
+25
-16
| 'use strict'; | ||
| exports.__esModule = true; | ||
| exports['default'] = deepEquals; | ||
| var hasOwn = Object.prototype.hasOwnProperty; | ||
| var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
| exports.default = deepEquals; | ||
| var hasOwn = function hasOwn(object, key) { | ||
| return Object.prototype.hasOwnProperty.call(object, key); | ||
| }; | ||
| function deepEquals(equals, deepObjects) { | ||
@@ -17,7 +21,10 @@ function deep(valueA, valueB) { | ||
| } | ||
| for (var index = 0; index < valueA.length; index++) { | ||
| if (!deep(valueA[index], valueB[index])) { | ||
| return false; | ||
| } | ||
| // Check deep equality of each value in A against the same indexed value in B | ||
| if (!valueA.every(function (value, index) { | ||
| return deep(value, valueB[index]); | ||
| })) { | ||
| return false; | ||
| } | ||
| // could not find unequal items | ||
@@ -31,4 +38,4 @@ return true; | ||
| if (typeof valueA === 'object') { | ||
| if (typeof valueB !== 'object') { | ||
| if ((typeof valueA === 'undefined' ? 'undefined' : _typeof(valueA)) === 'object') { | ||
| if ((typeof valueB === 'undefined' ? 'undefined' : _typeof(valueB)) !== 'object') { | ||
| return false; | ||
@@ -50,8 +57,12 @@ } | ||
| for (var index = 0; index < aKeys.length; index++) { | ||
| var key = aKeys[index]; | ||
| if (hasOwn.call(valueA, key) && (!hasOwn.call(valueB, key) || !(deepObjects ? deep : equals)(valueA[key], valueB[key]))) { | ||
| return false; | ||
| } | ||
| // Should we compare with shallow equivalence or deep equivalence? | ||
| var equalityChecker = deepObjects ? deep : equals; | ||
| // Check if objects share same keys, and each of those keys are equal | ||
| if (!aKeys.every(function (aKey) { | ||
| return hasOwn(valueA, aKey) && hasOwn(valueB, aKey) && equalityChecker(valueA[aKey], valueB[aKey]); | ||
| })) { | ||
| return false; | ||
| } | ||
| // could not find unequal keys or values | ||
@@ -64,4 +75,2 @@ return true; | ||
| return deep; | ||
| } | ||
| module.exports = exports['default']; | ||
| } |
+3
-4
@@ -5,4 +5,2 @@ 'use strict'; | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
| var _memoize = require('./memoize'); | ||
@@ -12,3 +10,4 @@ | ||
| exports['default'] = _memoize2['default']; | ||
| module.exports = exports['default']; | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| exports.default = _memoize2.default; |
+19
-14
| "use strict"; | ||
| exports.__esModule = true; | ||
| exports["default"] = lruCache; | ||
| exports.default = lruCache; | ||
| function lruCache(limit, equals) { | ||
@@ -10,13 +9,21 @@ var entries = []; | ||
| function get(key) { | ||
| for (var index = 0; index < entries.length; index++) { | ||
| var entry = entries[index]; | ||
| if (equals(key, entry.key)) { | ||
| if (index > 0) { | ||
| // move this entry to the top of the cache | ||
| entries.splice(index, 1); | ||
| entries.unshift(entry); | ||
| } | ||
| return entry.value; | ||
| var cacheIndex = entries.findIndex(function (entry) { | ||
| return equals(key, entry.key); | ||
| }); | ||
| // We found a cached entry | ||
| if (cacheIndex > -1) { | ||
| var entry = entries[cacheIndex]; | ||
| // Cached entry not at top of cache, move it to the top | ||
| if (cacheIndex > 0) { | ||
| entries.slice(cacheIndex, 1); | ||
| entries.unshift(entry); | ||
| } | ||
| return entry.value; | ||
| } | ||
| // No entry found in cache, return null | ||
| return undefined; | ||
| } | ||
@@ -34,4 +41,2 @@ | ||
| return { get: get, put: put }; | ||
| } | ||
| module.exports = exports["default"]; | ||
| } |
+36
-12
| 'use strict'; | ||
| exports.__esModule = true; | ||
| exports['default'] = memoize; | ||
| exports.default = memoize; | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
| var _deepEquals = require('./deepEquals'); | ||
| var _singletonCache = require('./singletonCache'); | ||
| var _deepEquals2 = _interopRequireDefault(_deepEquals); | ||
| var _singletonCache2 = _interopRequireDefault(_singletonCache); | ||
| var _lruCache = require('./lruCache'); | ||
@@ -16,10 +14,35 @@ | ||
| var _deepEquals = require('./deepEquals'); | ||
| var _singletonCache = require('./singletonCache'); | ||
| var _deepEquals2 = _interopRequireDefault(_deepEquals); | ||
| var _singletonCache2 = _interopRequireDefault(_singletonCache); | ||
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
| function createCache(limit, equals) { | ||
| return limit === 1 ? _singletonCache2['default'](equals) : _lruCache2['default'](limit, equals); | ||
| return limit === 1 ? (0, _singletonCache2.default)(equals) : (0, _lruCache2.default)(limit, equals); | ||
| } | ||
| function createEqualsFn(basicEquals, deepObjects) { | ||
| // Choose strategy for basic or deep object equals | ||
| var equals = deepObjects ? (0, _deepEquals2.default)(basicEquals, deepObjects) : basicEquals; | ||
| return function (valueA, valueB) { | ||
| // The arguments are always the argument array-like objects | ||
| // Different lengths means they are not the same | ||
| if (valueA.length !== valueB.length) { | ||
| return false; | ||
| } | ||
| // Compare the values | ||
| for (var index = 0; index < valueA.length; index += 1) { | ||
| if (!equals(valueA[index], valueB[index])) { | ||
| return false; | ||
| } | ||
| } | ||
| // Found no conflicts | ||
| return true; | ||
| }; | ||
| } | ||
| function memoize() { | ||
@@ -41,2 +64,5 @@ var limit = 1; | ||
| equals = config.shift(); | ||
| } else if (typeof config[0] === 'undefined') { | ||
| // Support passing undefined equal argument; | ||
| config.shift(); | ||
| } | ||
@@ -47,3 +73,3 @@ if (typeof config[0] === 'boolean') { | ||
| var cache = createCache(limit, _deepEquals2['default'](equals, deepObjects)); | ||
| var cache = createCache(limit, createEqualsFn(equals, deepObjects)); | ||
@@ -64,4 +90,2 @@ return function (fn) { | ||
| }; | ||
| } | ||
| module.exports = exports['default']; | ||
| } |
| "use strict"; | ||
| exports.__esModule = true; | ||
| exports["default"] = singletonCache; | ||
| exports.default = singletonCache; | ||
| function singletonCache(equals) { | ||
| var entry = undefined; | ||
| var entry = void 0; | ||
| return { | ||
@@ -14,3 +13,2 @@ get: function get(key) { | ||
| }, | ||
| put: function put(key, value) { | ||
@@ -20,4 +18,2 @@ entry = { key: key, value: value }; | ||
| }; | ||
| } | ||
| module.exports = exports["default"]; | ||
| } |
+1
-1
| The MIT License (MIT) | ||
| Copyright (c) 2015 Erik Rasmussen | ||
| Copyright (c) 2017 Erik Rasmussen | ||
@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy |
+24
-14
| { | ||
| "name": "lru-memoize", | ||
| "version": "1.0.1", | ||
| "version": "1.0.2", | ||
| "description": "A utility to provide lru memoization for any js function", | ||
@@ -18,3 +18,5 @@ "main": "./lib/index.js", | ||
| "prepublish": "npm run lint && npm run test && npm run clean && npm run build", | ||
| "test": "mocha --compilers js:babel/register --recursive" | ||
| "test": "mocha --compilers js:babel-register --recursive \"src/**/__tests__/*\"", | ||
| "test:cov": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text npm test", | ||
| "test:codecov": "cat ./coverage/lcov.info | ./node_modules/codecov.io/bin/codecov.io.js" | ||
| }, | ||
@@ -35,15 +37,23 @@ "keywords": [ | ||
| "devDependencies": { | ||
| "babel": "^5.8.23", | ||
| "babel-core": "^5.8.25", | ||
| "babel-eslint": "^4.1.6", | ||
| "babel-loader": "^5.3.2", | ||
| "eslint": "^1.10.3", | ||
| "eslint-config-airbnb": "0.1.0", | ||
| "eslint-plugin-react": "^3.13.1", | ||
| "expect": "^1.13.4", | ||
| "mocha": "^2.3.4", | ||
| "rifraf": "^2.0.2", | ||
| "rimraf": "^2.5.0", | ||
| "webpack": "^1.12.9" | ||
| "babel-cli": "^6.24.1", | ||
| "babel-core": "^6.24.1", | ||
| "babel-eslint": "^7.2.2", | ||
| "babel-loader": "^6.4.1", | ||
| "babel-preset-es2015": "^6.24.1", | ||
| "babel-register": "^6.24.1", | ||
| "codecov.io": "^0.1.6", | ||
| "cross-env": "^4.0.0", | ||
| "eslint": "^3.19.0", | ||
| "eslint-config-react-app": "^0.6.2", | ||
| "eslint-plugin-flowtype": "^2.30.4", | ||
| "eslint-plugin-import": "^2.2.0", | ||
| "eslint-plugin-jsx-a11y": "^4.0.0", | ||
| "eslint-plugin-react": "^6.10.3", | ||
| "expect": "^1.20.2", | ||
| "mocha": "^3.2.0", | ||
| "nyc": "^10.2.0", | ||
| "rifraf": "^2.0.3", | ||
| "rimraf": "^2.6.1", | ||
| "webpack": "^2.4.1" | ||
| } | ||
| } |
+5
-5
@@ -1,2 +0,2 @@ | ||
| #lru-memoize | ||
| # lru-memoize | ||
@@ -47,17 +47,17 @@ [](https://www.npmjs.com/package/lru-memoize) | ||
| ### `memoize(limit:Integer?, equals:Function?, deepObjects:Boolean?)` | ||
| #### `memoize(limit:Integer?, equals:Function?, deepObjects:Boolean?)` | ||
| Returns `(Function) => Function`. | ||
| ##### -`limit` : Integer [optional] | ||
| ###### -`limit` : Integer [optional] | ||
| > The number of `arguments -> value` mappings to keep in memory. Defaults to `1`. | ||
| ##### -`equals` : Function [optional] | ||
| ###### -`equals` : Function [optional] | ||
| > A function to compare two values for equality. Defaults to `===`. | ||
| ##### -`deepObjects` : Boolean [optional] | ||
| ###### -`deepObjects` : Boolean [optional] | ||
| > Whether or not to perform a deep equals on Object values. Defaults to `false`. | ||
| 'use strict'; | ||
| var webpack = require('webpack'); | ||
| var reactExternal = { | ||
| root: 'React', | ||
| commonjs2: 'react', | ||
| commonjs: 'react', | ||
| amd: 'react' | ||
| }; | ||
| module.exports = { | ||
| externals: { | ||
| 'react': reactExternal | ||
| }, | ||
| module: { | ||
| loaders: [ | ||
| { test: /\.js$/, loaders: ['babel-loader'], exclude: /node_modules/ } | ||
| rules: [ | ||
| { test: /\.js$/, use: ['babel-loader'], exclude: /node_modules/ } | ||
| ] | ||
@@ -25,4 +15,4 @@ }, | ||
| resolve: { | ||
| extensions: ['', '.js'] | ||
| extensions: ['.js'] | ||
| } | ||
| }; |
@@ -8,3 +8,2 @@ 'use strict'; | ||
| config.plugins = [ | ||
| new webpack.optimize.OccurenceOrderPlugin(), | ||
| new webpack.DefinePlugin({ | ||
@@ -11,0 +10,0 @@ 'process.env.NODE_ENV': JSON.stringify('development') |
@@ -8,3 +8,2 @@ 'use strict'; | ||
| config.plugins = [ | ||
| new webpack.optimize.OccurenceOrderPlugin(), | ||
| new webpack.DefinePlugin({ | ||
@@ -11,0 +10,0 @@ 'process.env.NODE_ENV': JSON.stringify('production') |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
173238
149.74%43
59.26%1117
171.78%20
66.67%2
100%4
100%1
Infinity%