diff options
Diffstat (limited to 'node_modules/es5-ext/function/#/copy.js')
-rw-r--r-- | node_modules/es5-ext/function/#/copy.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/es5-ext/function/#/copy.js b/node_modules/es5-ext/function/#/copy.js new file mode 100644 index 000000000..f0403b304 --- /dev/null +++ b/node_modules/es5-ext/function/#/copy.js @@ -0,0 +1,23 @@ +"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; +}; |