12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 'use strict';
- var toString = Function.prototype.toString;
- var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/;
- var maxFunctionSourceLength = 512;
- function getFuncName(aFunc) {
- if (typeof aFunc !== 'function') {
- return null;
- }
- var name = '';
- if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') {
-
- var functionSource = toString.call(aFunc);
-
-
- if (functionSource.indexOf('(') > maxFunctionSourceLength) {
- return name;
- }
-
- var match = functionSource.match(functionNameMatch);
- if (match) {
- name = match[1];
- }
- } else {
-
- name = aFunc.name;
- }
- return name;
- }
- module.exports = getFuncName;
|