function constructorName( v ) {
	var match;
	var name;
	var ctor;
	name = nativeClass( v ).slice( 8, -1 );
	if ( (name === 'Object' || name === 'Error') && v.constructor ) {
		ctor = v.constructor;
		if ( typeof ctor.name === 'string' ) {
			return ctor.name;
		}
		match = RE.exec( ctor.toString() );
		if ( match ) {
			return match[ 1 ];
		}
	}
	if ( isBuffer( v ) ) {
		return 'Buffer';
	}
	return name;
}
Determines the name of a value's constructor.

@param {*} v - input value
@returns {string} name of a value's constructor

@example
var v = constructorName( 'a' );
// returns 'String'

@example
var v = constructorName( 5 );
// returns 'Number'

@example
var v = constructorName( null );
// returns 'Null'

@example
var v = constructorName( undefined );
// returns 'Undefined'

@example
var v = constructorName( function noop() {} );
// returns 'Function'