From a4863d52448170a8b94fa1fd2df79af1b66b6ad1 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Sun, 27 Mar 2011 16:19:03 -0700 Subject: correct size() impl for object's w/ 'length' prop the original implementation returned incorrect value value for objects with 'length' property. --- src/Angular.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/Angular.js') diff --git a/src/Angular.js b/src/Angular.js index f4cb9b51..9a607ba3 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -487,17 +487,19 @@ function map(obj, iterator, context) { */ function size(obj, ownPropsOnly) { var size = 0, key; - if (obj) { - if (isNumber(obj.length)) { - return obj.length; - } else if (isObject(obj)){ - for (key in obj) - if (!ownPropsOnly || obj.hasOwnProperty(key)) - size++; - } + + if (isArray(obj) || isString(obj)) { + return obj.length; + } else if (isObject(obj)){ + for (key in obj) + if (!ownPropsOnly || obj.hasOwnProperty(key)) + size++; } + return size; } + + function includes(array, obj) { for ( var i = 0; i < array.length; i++) { if (obj === array[i]) return true; -- cgit v1.2.3