tests/TreeBuilder.vala
[app.Builder.js] / XObject.js
index e5a415f..872ec44 100644 (file)
@@ -431,7 +431,7 @@ XObject.prototype = {
                     
                 child = child.join('.');
                 if (typeof(XObject.cache[nxid]) != 'undefined') {
-                    return XObject.cache[nxid].get(child);
+                    return XObject.cache[nxid].getBySearch(child);
                 }
                 
                 
@@ -465,7 +465,7 @@ XObject.prototype = {
         }
         if (xid == this.id) {
             try {
-                return child === false ? this : this.get(child);
+                return child === false ? this : this.getBySearch(child);
             } catch (ex) {
                 throw {
                     name: "ArgumentError", 
@@ -486,7 +486,7 @@ XObject.prototype = {
         })
         if (ret) {
             try {
-                return child === false ? ret : ret.get(child);
+                return child === false ? ret : ret.getBySearch(child);
             } catch (ex) {
                 throw {
                     name: "ArgumentError", 
@@ -507,7 +507,7 @@ XObject.prototype = {
                 Seed.quit();
             }
             try {
-                ret = ch.get(xid);
+                ret = ch.getBySearch(xid);
             } catch (ex) { }
             
             
@@ -519,7 +519,7 @@ XObject.prototype = {
             }
         }
         try {
-            return child === false ? ret : ret.get(child);
+            return child === false ? ret : ret.getBySearch(child);
         } catch (ex) {
             throw {
                 name: "ArgumentError", 
@@ -636,7 +636,40 @@ 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){
+            //print (p + ': ' + typeof(o[p]));
+            r[p] = cp(o[p])
+        }
+        return r;
+    },
+
 
     /**
      * Extends one class with another class and optionally overrides members with the passed literal. This class