Newer
Older
vmk-demo-bot / admin / node_modules / es5-ext / function / # / copy.js
@eugene-sukhodolskiy eugene-sukhodolskiy 18 days ago 518 bytes init
"use strict";

var mixin         = require("../../object/mixin")
  , validFunction = require("../valid-function");

module.exports = function () {
	validFunction(this);

	var args = [];
	for (var i = 0; i < this.length; ++i) args.push("arg" + (i + 1));
	// eslint-disable-next-line no-new-func
	var fn = new Function(
		"fn",
		"return function " +
			(this.name || "") +
			"(" +
			args.join(", ") +
			") { return fn.apply(this, arguments); };"
	)(this);
	try { mixin(fn, this); }
	catch (ignore) {}
	return fn;
};