diff options
| author | Igor Minar | 2011-03-27 16:19:03 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-03-30 15:24:03 -0700 |
| commit | a4863d52448170a8b94fa1fd2df79af1b66b6ad1 (patch) | |
| tree | 42efebd35b150bdc70deac59e69e77377951d330 /src/Angular.js | |
| parent | 96a1df192a167e6e34988af687693506f4efd1d1 (diff) | |
| download | angular.js-a4863d52448170a8b94fa1fd2df79af1b66b6ad1.tar.bz2 | |
correct size() impl for object's w/ 'length' prop
the original implementation returned incorrect value value for
objects with 'length' property.
Diffstat (limited to 'src/Angular.js')
| -rw-r--r-- | src/Angular.js | 18 |
1 files changed, 10 insertions, 8 deletions
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; |
