function getValue( target, property, receiver, ctx ) {
	var value = target[ property ];
	if ( isFunction( value ) ) {
		if ( value === target.constructor ) {
			return ctx.ctor;
		}
		return wrapper;
	}
	return value;

	/**
	* Method wrapper.
	*
	* @private
	* @returns {*} results
	*/
	function wrapper() {
		var args;
		var i;

		args = [];
		for ( i = 0; i < arguments.length; i++ ) {
			args.push( arguments[ i ] );
		}
		return value.apply( ( this === receiver ) ? target : this, args ); // eslint-disable-line no-invalid-this
	}
}
Returns the property value associated with a specified property.

@private
@param {Object} target - target object
@param {(string|symbol)} property - property
@param {Object} receiver - the proxy object or an object inheriting from the proxy
@param {Object} ctx - context object
@param {Function} ctx.ctor - proxied array constructor
@returns {*} result