1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- "use strict";
- var test = function (arg1, arg2) { return arg2; };
- try {
- Object.defineProperty(test, "length", {
- configurable: true,
- writable: false,
- enumerable: false,
- value: 1
- });
- }
- catch (ignore) {}
- if (test.length === 1) {
- // ES2015+
- var desc = { configurable: true, writable: false, enumerable: false };
- module.exports = function (length, fn) {
- if (fn.length === length) return fn;
- desc.value = length;
- return Object.defineProperty(fn, "length", desc);
- };
- return;
- }
- module.exports = function (length, fn) {
- if (fn.length === length) return fn;
- switch (length) {
- case 0:
- return function () { return fn.apply(this, arguments); };
- case 1:
- return function (ignored1) { return fn.apply(this, arguments); };
- case 2:
- return function (ignored1, ignored2) { return fn.apply(this, arguments); };
- case 3:
- return function (ignored1, ignored2, ignored3) { return fn.apply(this, arguments); };
- case 4:
- return function (ignored1, ignored2, ignored3, ignored4) {
- return fn.apply(this, arguments);
- };
- case 5:
- return function (ignored1, ignored2, ignored3, ignored4, ignored5) {
- return fn.apply(this, arguments);
- };
- case 6:
- return function (ignored1, ignored2, ignored3, ignored4, ignored5, ignored6) {
- return fn.apply(this, arguments);
- };
- case 7:
- return function (ignored1, ignored2, ignored3, ignored4, ignored5, ignored6, ignored7) {
- return fn.apply(this, arguments);
- };
- default:
- throw new Error("Usupported function length");
- }
- };
|