Blame view

node_modules/es5-ext/function/#/copy.js 475 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  '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;
  };