-var isObject = require('../internals/is-object');
+var global = require('../internals/global');
+var isCallable = require('../internals/is-callable');
-module.exports = function (it) {
- if (!isObject(it) && it !== null) {
- throw TypeError("Can't set " + String(it) + ' as a prototype');
- } return it;
+var String = global.String;
+var TypeError = global.TypeError;
+
+module.exports = function (argument) {
+ if (typeof argument == 'object' || isCallable(argument)) return argument;
+ throw TypeError("Can't set " + String(argument) + ' as a prototype');
};