1 var aFunction = require('../internals/a-function');
3 // optional / simple context binding
4 module.exports = function (fn, that, length) {
6 if (that === undefined) return fn;
8 case 0: return function () {
11 case 1: return function (a) {
12 return fn.call(that, a);
14 case 2: return function (a, b) {
15 return fn.call(that, a, b);
17 case 3: return function (a, b, c) {
18 return fn.call(that, a, b, c);
21 return function (/* ...args */) {
22 return fn.apply(that, arguments);