handle FF 3.6 arguments 'object'

This commit is contained in:
rolux 2012-05-25 19:45:07 +02:00
parent c8cc037ef6
commit 80549fe4e2

View file

@ -338,12 +338,18 @@ Ox.typeOf = function(value) {
return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}; };
(function() { (function() {
// Internet Explorer returns 'HTMLCollection' instead of 'NodeList', // Firefox 3.6 returns 'Object' instead of 'Arguments',
// Internet Explorer 9 returns 'HTMLCollection' instead of 'NodeList',
// Mobile Safari doesn't like null and undefined // Mobile Safari doesn't like null and undefined
var nodelist = Ox.typeOf(document.getElementsByTagName('a')); var nodelist = Ox.typeOf(document.getElementsByTagName('a'));
if (nodelist != 'nodelist' || Ox.typeOf() != 'undefined') { if (
Ox.typeOf(arguments) != 'arguments'
&& nodelist != 'nodelist'
|| Ox.typeOf() != 'undefined'
) {
Ox.typeOf = function(value) { Ox.typeOf = function(value) {
var type = value === null ? 'null' var type = value && Ox.hasOwn(value, 'callee') ? 'arguments'
: value === null ? 'null'
: value === void 0 ? 'undefined' : value === void 0 ? 'undefined'
: Object.prototype.toString.call( : Object.prototype.toString.call(
value value