get-1.js 598 B

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. var indexOf = require("es5-ext/array/#/e-index-of");
  3. module.exports = function () {
  4. var lastId = 0, argsMap = [], cache = [];
  5. return {
  6. get: function (args) {
  7. var index = indexOf.call(argsMap, args[0]);
  8. return index === -1 ? null : cache[index];
  9. },
  10. set: function (args) {
  11. argsMap.push(args[0]);
  12. cache.push(++lastId);
  13. return lastId;
  14. },
  15. delete: function (id) {
  16. var index = indexOf.call(cache, id);
  17. if (index !== -1) {
  18. argsMap.splice(index, 1);
  19. cache.splice(index, 1);
  20. }
  21. },
  22. clear: function () {
  23. argsMap = [];
  24. cache = [];
  25. }
  26. };
  27. };