aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/internals/function-bind-context.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/internals/function-bind-context.js')
-rw-r--r--node_modules/core-js/internals/function-bind-context.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/function-bind-context.js b/node_modules/core-js/internals/function-bind-context.js
new file mode 100644
index 0000000..96a7f49
--- /dev/null
+++ b/node_modules/core-js/internals/function-bind-context.js
@@ -0,0 +1,24 @@
+var aFunction = require('../internals/a-function');
+
+// optional / simple context binding
+module.exports = function (fn, that, length) {
+ aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 0: return function () {
+ return fn.call(that);
+ };
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};