Cleanup mapClear.

This commit is contained in:
John-David Dalton
2015-12-17 20:43:32 -08:00
parent 380435d020
commit b1d396bbbb
2 changed files with 22 additions and 35 deletions

View File

@@ -1859,13 +1859,24 @@
var index = -1,
length = values ? values.length : 0;
this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
this.clear();
while (++index < length) {
var entry = values[index];
this.set(entry[0], entry[1]);
}
}
/**
* Removes all key-value entries from the map.
*
* @private
* @name clear
* @memberOf MapCache
*/
function mapClear() {
this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
}
/**
* Removes `key` and its value from the map.
*
@@ -1939,17 +1950,6 @@
return this;
}
/**
* Clears the map data
*
* @private
* @name clear
* @memberOf MapCache
*/
function mapClear() {
this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };
}
/*------------------------------------------------------------------------*/
/**

View File

@@ -12329,7 +12329,7 @@
});
QUnit.test('should expose a `cache` object on the `memoized` function which implements `Map` interface', function(assert) {
assert.expect(12);
assert.expect(22);
lodashStable.times(2, function(index) {
var resolver = index ? identity : null;
@@ -12341,13 +12341,22 @@
var cache = memoized.cache;
memoized('a');
memoized('b');
memoized('c');
assert.strictEqual(cache.has('a'), true);
assert.strictEqual(cache.has('b'), true);
assert.strictEqual(cache.has('c'), true);
assert.strictEqual(cache.get('a'), 'value:a');
assert.strictEqual(cache['delete']('a'), true);
assert.strictEqual(cache.has('a'), false);
assert.strictEqual(cache.get('a'), undefined);
assert.strictEqual(cache['delete']('a'), false);
assert.strictEqual(cache.clear(), undefined);
assert.strictEqual(cache.has('b'), false);
assert.strictEqual(cache.has('c'), false);
});
});
@@ -12485,28 +12494,6 @@
_.memoize.Cache = oldCache;
});
QUnit.test('should allow clearing cache', function(assert) {
assert.expect(5);
var memoized = _.memoize(_.identity);
assert.strictEqual(memoized.cache.has('a'), false);
memoized('a');
assert.strictEqual(memoized.cache.has('a'), true);
memoized.cache.clear();
assert.strictEqual(memoized.cache.has('a'), false);
memoized('a');
memoized('b');
assert.strictEqual(memoized.cache.has('a'), true);
assert.strictEqual(memoized.cache.has('b'), true);
});
}());
/*--------------------------------------------------------------------------*/