1var assocIndexOf = require('./_assocIndexOf');
2
3/** Used for built-in method references. */
4var arrayProto = Array.prototype;
5
6/** Built-in value references. */
7var splice = arrayProto.splice;
8
9/**
10 * Removes `key` and its value from the list cache.
11 *
12 * @private
13 * @name delete
14 * @memberOf ListCache
15 * @param {string} key The key of the value to remove.
16 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
17 */
18function listCacheDelete(key) {
19  var data = this.__data__,
20      index = assocIndexOf(data, key);
21
22  if (index < 0) {
23    return false;
24  }
25  var lastIndex = data.length - 1;
26  if (index == lastIndex) {
27    data.pop();
28  } else {
29    splice.call(data, index, 1);
30  }
31  --this.size;
32  return true;
33}
34
35module.exports = listCacheDelete;
36