function processProperties(oPropertyHelper, aProperties) {
		if (!Array.isArray(aProperties)) {
			throwInvalidPropertyError("Property infos must be an array.");
		}

		const mPrivate = _private.get(oPropertyHelper);
		const aClonedProperties = merge([], aProperties);

		oPropertyHelper.validateProperties(aClonedProperties, mPrivate.aPreviousRawProperties);

		const aClonedPropertiesWithAliases = addAttributeAliases(aClonedProperties);
		const mNextPropertyMap = createPropertyMap(aClonedPropertiesWithAliases);
		enrichProperties(oPropertyHelper, aClonedPropertiesWithAliases);
		prepareProperties(oPropertyHelper, aClonedPropertiesWithAliases, mNextPropertyMap);

		oPropertyHelper._validatePropertyConsistency(aClonedPropertiesWithAliases, mPrivate.aProperties);

		mPrivate.aProperties = aClonedPropertiesWithAliases;
		mPrivate.mProperties = mNextPropertyMap;
		mPrivate.aPreviousRawProperties = merge([], aProperties);
	}
Validates the properties, applies defaults, and enriches them with additional information and functions.

@param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper
    The instance of the <code>PropertyHelper</code> to initialize or re-initialize.
@param {sap.ui.mdc.util.PropertyInfo[]} aProperties
    The properties to process in this helper.
@throws {Error} If the properties are invalid.