diff options
| author | Jeremy Tymes | 2012-11-13 07:33:26 -0500 |
|---|---|---|
| committer | Igor Minar | 2012-11-24 21:56:28 +0100 |
| commit | 55d15806fb14b1d98b5ca2770bbbb59e11548c62 (patch) | |
| tree | 07080d4a226fc2a380d058a0fcc67bd6197ecd9d | |
| parent | 94e1c0391c351b6f691fad8abed2828fa20548b2 (diff) | |
| download | angular.js-55d15806fb14b1d98b5ca2770bbbb59e11548c62.tar.bz2 | |
fix($cacheFactory): return undefined when removing non-existent entry
Instead of throwning an exception, remove should return undefined when
cache entry to be removed doesn't exist.
Closes #1497
| -rw-r--r-- | src/ng/cacheFactory.js | 2 | ||||
| -rw-r--r-- | test/ng/cacheFactorySpec.js | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/ng/cacheFactory.js b/src/ng/cacheFactory.js index 850d48f2..2ff02a37 100644 --- a/src/ng/cacheFactory.js +++ b/src/ng/cacheFactory.js @@ -70,6 +70,8 @@ function $CacheFactoryProvider() { remove: function(key) { var lruEntry = lruHash[key]; + if (!lruEntry) return; + if (lruEntry == freshEnd) freshEnd = lruEntry.p; if (lruEntry == staleEnd) staleEnd = lruEntry.n; link(lruEntry.n,lruEntry.p); diff --git a/test/ng/cacheFactorySpec.js b/test/ng/cacheFactorySpec.js index dc68b63d..88e8e523 100644 --- a/test/ng/cacheFactorySpec.js +++ b/test/ng/cacheFactorySpec.js @@ -89,6 +89,11 @@ describe('$cacheFactory', function() { })); + it('should return undefined when entry does not exist', inject(function($cacheFactory) { + expect(cache.remove('non-existent')).toBeUndefined(); + })); + + it('should stringify keys', inject(function($cacheFactory) { cache.put('123', 'foo'); cache.put(123, 'bar'); |
