| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | "use strict";var toPosInt = require("../number/to-pos-integer");var test = function (arg1, arg2) {	return arg2;};var desc, defineProperty, generate, mixin;try {	Object.defineProperty(test, "length", {		configurable: true,		writable: false,		enumerable: false,		value: 1	});} catch (ignore) {}if (test.length === 1) {	// ES6	desc = { configurable: true, writable: false, enumerable: false };	defineProperty = Object.defineProperty;	module.exports = function (fn, length) {		length = toPosInt(length);		if (fn.length === length) return fn;		desc.value = length;		return defineProperty(fn, "length", desc);	};} else {	mixin = require("../object/mixin");	generate = (function () {		var cache = [];		return function (length) {			var args, i = 0;			if (cache[length]) return cache[length];			args = [];			while (length--) args.push("a" + (++i).toString(36));			// eslint-disable-next-line no-new-func			return new Function(				"fn",				"return function (" + args.join(", ") + ") { return fn.apply(this, arguments); };"			);		};	}());	module.exports = function (src, length) {		var target;		length = toPosInt(length);		if (src.length === length) return src;		target = generate(length)(src);		try {			mixin(target, src);		} catch (ignore) {}		return target;	};}
 |