// Inspired by: http://www.davidflanagan.com/2009/08/typeof-isfuncti.html

'use strict';

var forEach = Array.prototype.forEach.bind([]);

module.exports = function (obj) {
	var type;
	if (!obj) return false;
	type = typeof obj;
	if (type === 'function') return true;
	if (type !== 'object') return false;

	try {
		forEach(obj);
		return true;
	} catch (e) {
		if (e instanceof TypeError) return false;
		throw e;
	}
};

'use strict';

module.exports = function (obj) { return typeof obj === 'function'; };

Simplify isCallable