function canExtendProto(obj) {
	if (!obj) {
		return false;
	}

	if (isArray(obj) || isPlainObject(obj)) {
		return true;
	}

	return isFunction(obj.constructor) && !isNative.test(obj.constructor.toString());
}
function canExtendProto(obj) {
	if (!obj) {
		return false;
	}

	if (isArray(obj) || isPlainObject(obj)) {
		return true;
	}

	return isFunction(obj.constructor) && !isNative.test(obj.constructor.toString());
}
function canExtendProto ( obj ) { if ( ! obj ) { return false ; } if ( isArray ( obj ) || isPlainObject ( obj ) ) { return true ; } return isFunction ( obj . constructor ) && ! isNative . test ( obj . constructor . toString ( ) ) ; }
Returns true if a prototype of the specified object can be extended

@param {?} obj - source object
@return {boolean}
Returns true if a prototype of the specified object can be extended