OSDN Git Service

Version 0.6.87, fix SuperConstructor @ X.Class & force convert to PointerEvent @...
[pettanr/clientJs.git] / 0.6.x / js / 00_core / 00_X.js
index a382553..f1293b8 100644 (file)
@@ -8,14 +8,16 @@ if( !window['console'] || ( window.parent && window.parent.log ) ) console = { l
 } };\r
 \r
 var undefined,\r
-       X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' );\r
+       X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ),\r
+       X_TEMP = {};\r
 \r
 X.VERSION = '0.6.50';\r
                \r
 X.bootTime = + new Date;\r
                \r
-X.getTime = Date.now ? new Function( 'return Date.now()' ) : new Function( 'return +new Date' );\r
-               \r
+X.getTime = Date.now ? Date.now : new Function( 'return +new Date' );\r
+\r
+\r
 X.emptyFunction = new Function;\r
 \r
                // defer の場合もあるので、document.readyState を見る MacIE で false\r
@@ -60,6 +62,38 @@ X.cloneObject = function( src ){
        return ret;\r
 };\r
 \r
+X.deepCopy = function( src ){\r
+       function clone( src, objSrc, objCopy, n ) {\r
+               var ret, i, key;\r
+               if( !src ){ // 0, "", null, undefined, NaN, false\r
+                       return src;\r
+               } else\r
+               if( X.Type.isArray( src ) ){\r
+                       i = objSrc.indexOf( src );\r
+                       if( i !== -1 ) return objCopy[ i ];\r
+                       objSrc[ ++n ] = src;\r
+                       objCopy[ n ]  = ret = [];\r
+               } else\r
+               if( X.Type.isObject( src ) ){\r
+                       i = objSrc.indexOf( src );\r
+                       if( i !== -1 ) return objCopy[ i ];\r
+                       objSrc[ ++n ] = src;\r
+                       objCopy[ n ]  = ret = {};\r
+               } else {\r
+                       // string, number, true\r
+                       return src;\r
+               };\r
+               for( key in src ){\r
+                       ret[ key ] = clone( src[ key ], objSrc, objCopy, n );\r
+               };\r
+               return ret;\r
+       };                              \r
+       return clone( src, [], [], -1 );\r
+};\r
+\r
+\r
+\r
+\r
 X.copyArray = function( ary ){\r
        var ret = [], i = ary.length;\r
        if( !i ) return ret;\r