You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
541 B
22 lines
541 B
"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; |
|
};
|
|
|