tests/TreeBuilder.vala
[app.Builder.js] / XObject.js
index f39fa34..872ec44 100644 (file)
@@ -636,15 +636,36 @@ XObject.extend(XObject,
         return o;
     },
 
+    /**
+     * Deep clone..
+     * @param {Object} o the object to clone..
+     * @return {Object} returns clone of object
+     * @member Object xclone
+     */
     xclone : function(o)
     {
+        var cp = function(e) {
+             
+            if (typeof(e) != 'object') {
+                return e;
+            }
+            
+            if (typeof(e) == 'object' && Array.isArray(e)) {
+                var ar  = [];
+                for (var i =0; i < e.length;i++) {
+                    ar.push(cp(e[i])); 
+                }
+                return ar;
+            }
+            
+            return XObject.xclone(e);
+            
+        };
+        
         var r = {};
         for(var p in o){
-            if (typeof(o[p]) == 'object') {
-                r[p] = XObject.xclone(o[p]);
-                continue;
-            }
-            r[p] = o[p];
+            //print (p + ': ' + typeof(o[p]));
+            r[p] = cp(o[p])
         }
         return r;
     },