Blame view

node_modules/es5-ext/function/#/copy.js 543 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
  };