From fcdac65aedfdf48dd2e11d6e5850e03ec188f068 Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Thu, 20 Mar 2014 11:13:05 -0400 Subject: [PATCH] fix(limitTo): do not convert Infinity to NaN parseInt(Infinity, 10) will result in NaN, which becomes undesirable when the expected behaviour is to return the entire input. I believe this is possibly useful as a way to toggle input limiting based on certain factors. Closes #6771 Closes #7118 --- src/ng/filter/limitTo.js | 6 +++++- test/ng/filter/limitToSpec.js | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ng/filter/limitTo.js b/src/ng/filter/limitTo.js index 7e198cb3..4f87b996 100644 --- a/src/ng/filter/limitTo.js +++ b/src/ng/filter/limitTo.js @@ -73,7 +73,11 @@ function limitToFilter(){ return function(input, limit) { if (!isArray(input) && !isString(input)) return input; - limit = int(limit); + if (Math.abs(Number(limit)) === Infinity) { + limit = Number(limit); + } else { + limit = int(limit); + } if (isString(input)) { //NaN check on limit diff --git a/test/ng/filter/limitToSpec.js b/test/ng/filter/limitToSpec.js index 2ebdc214..f938a28a 100644 --- a/test/ng/filter/limitToSpec.js +++ b/test/ng/filter/limitToSpec.js @@ -68,4 +68,18 @@ describe('Filter: limitTo', function() { expect(limitTo(str, -9)).toEqual(str); expect(limitTo(str, '-9')).toEqual(str); }) + + it('should return entire input array when limited by Infinity', function() { + expect(limitTo(items, Infinity)).toEqual(items); + expect(limitTo(items, 'Infinity')).toEqual(items); + expect(limitTo(items, -Infinity)).toEqual(items); + expect(limitTo(items, '-Infinity')).toEqual(items); + }); + + it('should return the entire string when limited by Infinity', function() { + expect(limitTo(str, Infinity)).toEqual(str); + expect(limitTo(str, 'Infinity')).toEqual(str); + expect(limitTo(str, -Infinity)).toEqual(str); + expect(limitTo(str, '-Infinity')).toEqual(str); + }); });