(function(){
	
var fn = function(){};
var array = [];

var toString = Object.prototype.toString;

function isFunction( obj ) {
	return toString.call(obj) === "[object Function]";
};
function isFunctionOld( obj ) {
	return !!obj && obj.constructor === Function;
};
function isFunctionOld2( obj ) {
	return obj instanceof Function;
};
function isArray( obj ) {
	return toString.call(obj) === "[object Array]";
};
function isArrayOld( obj ) {
	return !!obj && obj.constructor === Array;
};


Benchmarker().compare({
	attempts:5,
	times:10000
 }, {
	isArray:function(){
		isArray(array);
	},
	isArrayOld:function(){
		isArrayOld(array);
	},
	isFunction:function(){
		isFunction(fn);
	},
	isFunctionOld:function(){
		isFunctionOld(fn);
	},
	isFunctionOld2:function(){
		isFunctionOld2(fn);
	}
});

})();
