112 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Generated by CoffeeScript 1.6.3
 | |
| var common;
 | |
| 
 | |
| module.exports = common = {
 | |
|   /*
 | |
|   	Checks to see if o is an object, and it isn't an instance
 | |
|   	of some class.
 | |
|   */
 | |
| 
 | |
|   isBareObject: function(o) {
 | |
|     if ((o != null) && o.constructor === Object) {
 | |
|       return true;
 | |
|     }
 | |
|     return false;
 | |
|   },
 | |
|   /*
 | |
|   	Returns type of an object, including:
 | |
|   	undefined, null, string, number, array,
 | |
|   	arguments, element, textnode, whitespace, and object
 | |
|   */
 | |
| 
 | |
|   typeOf: function(item) {
 | |
|     var _ref;
 | |
|     if (item === null) {
 | |
|       return 'null';
 | |
|     }
 | |
|     if (typeof item !== 'object') {
 | |
|       return typeof item;
 | |
|     }
 | |
|     if (Array.isArray(item)) {
 | |
|       return 'array';
 | |
|     }
 | |
|     if (item.nodeName) {
 | |
|       if (item.nodeType === 1) {
 | |
|         return 'element';
 | |
|       }
 | |
|       if (item.nodeType === 3) {
 | |
|         return (_ref = /\S/.test(item.nodeValue)) != null ? _ref : {
 | |
|           'textnode': 'whitespace'
 | |
|         };
 | |
|       }
 | |
|     } else if (typeof item.length === 'number') {
 | |
|       if (item.callee) {
 | |
|         return 'arguments';
 | |
|       }
 | |
|     }
 | |
|     return typeof item;
 | |
|   },
 | |
|   clone: function(item, includePrototype) {
 | |
|     if (includePrototype == null) {
 | |
|       includePrototype = false;
 | |
|     }
 | |
|     switch (common.typeOf(item)) {
 | |
|       case 'array':
 | |
|         return common._cloneArray(item, includePrototype);
 | |
|       case 'object':
 | |
|         return common._cloneObject(item, includePrototype);
 | |
|       default:
 | |
|         return item;
 | |
|     }
 | |
|   },
 | |
|   /*
 | |
|   	Deep clone of an object.
 | |
|   	From MooTools
 | |
|   */
 | |
| 
 | |
|   _cloneObject: function(o, includePrototype) {
 | |
|     var clone, key;
 | |
|     if (includePrototype == null) {
 | |
|       includePrototype = false;
 | |
|     }
 | |
|     if (common.isBareObject(o)) {
 | |
|       clone = {};
 | |
|       for (key in o) {
 | |
|         clone[key] = common.clone(o[key], includePrototype);
 | |
|       }
 | |
|       return clone;
 | |
|     } else {
 | |
|       if (!includePrototype) {
 | |
|         return o;
 | |
|       }
 | |
|       if (o instanceof Function) {
 | |
|         return o;
 | |
|       }
 | |
|       clone = Object.create(o.constructor.prototype);
 | |
|       for (key in o) {
 | |
|         if (o.hasOwnProperty(key)) {
 | |
|           clone[key] = common.clone(o[key], includePrototype);
 | |
|         }
 | |
|       }
 | |
|       return clone;
 | |
|     }
 | |
|   },
 | |
|   /*
 | |
|   	Deep clone of an array.
 | |
|   	From MooTools
 | |
|   */
 | |
| 
 | |
|   _cloneArray: function(a, includePrototype) {
 | |
|     var clone, i;
 | |
|     if (includePrototype == null) {
 | |
|       includePrototype = false;
 | |
|     }
 | |
|     i = a.length;
 | |
|     clone = new Array(i);
 | |
|     while (i--) {
 | |
|       clone[i] = common.clone(a[i], includePrototype);
 | |
|     }
 | |
|     return clone;
 | |
|   }
 | |
| };
 |