You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.4 KiB
111 lines
2.4 KiB
// 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; |
|
} |
|
};
|
|
|