added unit testing, and started implementing unit tests...phew
This commit is contained in:
44
node_modules/get-func-name/index.js
generated
vendored
Normal file
44
node_modules/get-func-name/index.js
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
'use strict';
|
||||
|
||||
/* !
|
||||
* Chai - getFuncName utility
|
||||
* Copyright(c) 2012-2016 Jake Luer <jake@alogicalparadox.com>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* ### .getFuncName(constructorFn)
|
||||
*
|
||||
* Returns the name of a function.
|
||||
* When a non-function instance is passed, returns `null`.
|
||||
* This also includes a polyfill function if `aFunc.name` is not defined.
|
||||
*
|
||||
* @name getFuncName
|
||||
* @param {Function} funct
|
||||
* @namespace Utils
|
||||
* @api public
|
||||
*/
|
||||
|
||||
var toString = Function.prototype.toString;
|
||||
var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/;
|
||||
function getFuncName(aFunc) {
|
||||
if (typeof aFunc !== 'function') {
|
||||
return null;
|
||||
}
|
||||
|
||||
var name = '';
|
||||
if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') {
|
||||
// Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined
|
||||
var match = toString.call(aFunc).match(functionNameMatch);
|
||||
if (match) {
|
||||
name = match[1];
|
||||
}
|
||||
} else {
|
||||
// If we've got a `name` property we just use it
|
||||
name = aFunc.name;
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
module.exports = getFuncName;
|
Reference in New Issue
Block a user