fix Ox.clone(0, deep)

This commit is contained in:
rolux 2012-06-24 15:32:35 +02:00
parent d41e12de2f
commit 19afdd8bea

View file

@ -30,7 +30,9 @@ Ox.clone <f> Returns a (shallow or deep) copy of an array or object
@*/
Ox.clone = function(collection, deep) {
var ret, type = Ox.typeOf(collection);
if (deep) {
if (type != 'array' && type != 'object') {
ret = collection;
} else if (deep) {
ret = type == 'array' ? [] : {};
Ox.forEach(collection, function(value, key) {
type = Ox.typeOf(value);
@ -38,9 +40,7 @@ Ox.clone = function(collection, deep) {
? Ox.clone(value, true) : value;
});
} else {
ret = type == 'array' ? collection.slice()
: type == 'object' ? Ox.extend({}, collection)
: collection;
ret = type == 'array' ? collection.slice() : Ox.extend({}, collection)
}
return ret;
};