diff options
| author | Jeremy Tymes | 2012-11-13 07:33:26 -0500 |
|---|---|---|
| committer | Igor Minar | 2012-11-24 21:58:17 +0100 |
| commit | 1eb9e22d450aa0b5c2221313e8c83dc5a47e3981 (patch) | |
| tree | 26fef61ba5f7d751e85c5da8403e2be9ab4f6d1e | |
| parent | c0de8fb737d5d381e1ca5efc58c9ce5fcd860dd9 (diff) | |
| download | angular.js-1eb9e22d450aa0b5c2221313e8c83dc5a47e3981.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'); |
