diff options
Diffstat (limited to 'src/Angular.js')
| -rw-r--r-- | src/Angular.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/Angular.js b/src/Angular.js index 3af21ced..2df6bbef 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -231,13 +231,14 @@ function isLeafNode (node) { function copy(source, destination){ if (!destination) { - if (isArray(source)) { - return copy(source, []); - } else if (isObject(source)) { - return copy(source, {}); - } else { - return source; + if (source) { + if (isArray(source)) { + return copy(source, []); + } else if (isObject(source)) { + return copy(source, {}); + } } + return source; } else { if (isArray(source)) { while(destination.length) { @@ -249,7 +250,11 @@ function copy(source, destination){ }); } foreach(source, function(value, key){ - destination[key] = isArray(value) ? copy(value, []) : (isObject(value) ? copy(value, {}) : value); + destination[key] = value ? + ( isArray(value) ? + copy(value, []) : + (isObject(value) ? copy(value, {}) : value)) : + value; }); return destination; } |
