--- /dev/null
+var FunctionPrototype = Function.prototype;
+var bind = FunctionPrototype.bind;
+var call = FunctionPrototype.call;
+var callBind = bind && bind.bind(call);
+
+module.exports = bind ? function (fn) {
+ return fn && callBind(call, fn);
+} : function (fn) {
+ return fn && function () {
+ return call.apply(fn, arguments);
+ };
+};