var assocIndexOf = require('./_assocIndexOf');

/** Used for built-in method references. */ var arrayProto = Array.prototype;

/** Built-in value references. */ var splice = arrayProto.splice;

/**

* Removes `key` and its value from the list cache.
*
* @private
* @name delete
* @memberOf ListCache
* @param {string} key The key of the value to remove.
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
*/

function listCacheDelete(key) {

var data = this.__data__,
    index = assocIndexOf(data, key);

if (index < 0) {
  return false;
}
var lastIndex = data.length - 1;
if (index == lastIndex) {
  data.pop();
} else {
  splice.call(data, index, 1);
}
--this.size;
return true;

}

module.exports = listCacheDelete;