code: function(functionName){
              functionName = this.string(functionName);
              if(!/^([a-zA-Z_])([a-zA-Z0-9_\-])+$/.test(functionName)){
                  throw new TypeError('a valid function name is expected, ' + functionName + ' [' + (typeof functionName) + '] given');
              }
              return functionName;
          }
docs: Check if the parameter is a valid JavaScript function name.
  
  @param {String} functionName
  @returns {String} same as input if valid
  @throws {TypeError} check it's a string and a valid name against the pattern inside.