diff --git a/source/Ox/js/Type.js b/source/Ox/js/Type.js index 1f44fa91..caa785a5 100644 --- a/source/Ox/js/Type.js +++ b/source/Ox/js/Type.js @@ -338,12 +338,18 @@ Ox.typeOf = function(value) { return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); }; (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 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) { - var type = value === null ? 'null' + var type = value && Ox.hasOwn(value, 'callee') ? 'arguments' + : value === null ? 'null' : value === void 0 ? 'undefined' : Object.prototype.toString.call( value