chenyc
2025-12-09 65e034683b28d799e73c7d7e5e4769fab5b9bc9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"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;
};