1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| "use strict";
|
| var mixin = require("../../object/mixin")
| , validFunction = require("../valid-function")
| , re = /^\s*function\s*([\0-')-\uffff]+)*\s*\(([\0-(*-\uffff]*)\)\s*\{/;
|
| module.exports = function () {
| var match = String(validFunction(this)).match(re), fn;
|
| // eslint-disable-next-line no-new-func
| fn = new Function(
| "fn",
| "return function " +
| match[1].trim() +
| "(" +
| match[2] +
| ") { return fn.apply(this, arguments); };"
| )(this);
| try { mixin(fn, this); }
| catch (ignore) {}
| return fn;
| };
|
|