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