node/tools/eslint/node_modules/es5-ext/function/#/copy.js
Michaël Zasso 2d441493a4 tools: update eslint to v1.10.3
PR-URL: https://github.com/nodejs/io.js/pull/2286
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-13 23:15:39 +01:00

16 lines
475 B
JavaScript

'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;
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;
};