You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
598 B
29 lines
598 B
"use strict"; |
|
|
|
var indexOf = require("es5-ext/array/#/e-index-of"); |
|
|
|
module.exports = function () { |
|
var lastId = 0, argsMap = [], cache = []; |
|
return { |
|
get: function (args) { |
|
var index = indexOf.call(argsMap, args[0]); |
|
return index === -1 ? null : cache[index]; |
|
}, |
|
set: function (args) { |
|
argsMap.push(args[0]); |
|
cache.push(++lastId); |
|
return lastId; |
|
}, |
|
delete: function (id) { |
|
var index = indexOf.call(cache, id); |
|
if (index !== -1) { |
|
argsMap.splice(index, 1); |
|
cache.splice(index, 1); |
|
} |
|
}, |
|
clear: function () { |
|
argsMap = []; |
|
cache = []; |
|
} |
|
}; |
|
};
|
|
|