src/sap.ui.core/src/sap/ui/core/util/XMLPreprocessor.js
function getAny(oWithControl, oBindingInfo, mSettings, oScope, bAsync) {
		var bValueAsPromise = false;

		/*
		 * Prepares the given binding info or part of it; makes it "one time" and binds its
		 * formatter function (if opted in) to an interface object.
		 *
		 * @param {object} oInfo
		 *   a binding info or a part of it
		 * @param {number} i
		 *   index of binding info's part (if applicable)
		 */
		function prepare(oInfo, i) {
			var fnFormatter = oInfo.formatter,
				oModel,
				sModelName = oInfo.model;

			if (oInfo.path && oInfo.path.indexOf(">") > 0) {
				sModelName = oInfo.path.slice(0, oInfo.path.indexOf(">"));
			}
			oModel = oWithControl.getModel(sModelName);

			if (fnFormatter && fnFormatter.requiresIContext === true) {
				fnFormatter = oInfo.formatter
					= fnFormatter.bind(null, createContextInterface(oWithControl, mSettings, i));
			}
			// wrap formatter only if there is a formatter and async is allowed and either
			// - we use $$valueAsPromise ourselves, or
			// - we are top-level and at least one child has used $$valueAsPromise
			if (fnFormatter && bAsync
					&& (oModel && oModel.$$valueAsPromise || i === undefined && bValueAsPromise)) {
				oInfo.formatter = function () {
					var that = this;
					return SyncPromise.all(arguments).then(function (aArguments) {
						return fnFormatter.apply(that, aArguments);
					});
				};
				oInfo.formatter.textFragments = fnFormatter.textFragments;
			}
			oInfo.mode = BindingMode.OneTime;
			oInfo.parameters = oInfo.parameters || {};
			oInfo.parameters.scope = oScope;
			if (bAsync && oModel && oModel.$$valueAsPromise) { // opt-in to async behavior
				bValueAsPromise = oInfo.parameters.$$valueAsPromise = true;
			}
		}

		try {
			if (oBindingInfo.parts) {
				oBindingInfo.parts.forEach(prepare);
			}
			prepare(oBindingInfo);

			oWithControl.bindProperty("any", oBindingInfo);
			return oWithControl.getBinding("any")
				? SyncPromise.resolve(oWithControl.getAny())
				: null;
		} catch (e) {
			return SyncPromise.reject(e);
		} finally {
			oWithControl.unbindProperty("any", true);
		}
	}
function getAny(oWithControl, oBindingInfo, mSettings, oScope, bAsync) {
		var bValueAsPromise = false;

		/*
		 * Prepares the given binding info or part of it; makes it "one time" and binds its
		 * formatter function (if opted in) to an interface object.
		 *
		 * @param {object} oInfo
		 *   a binding info or a part of it
		 * @param {number} i
		 *   index of binding info's part (if applicable)
		 */
		function prepare(oInfo, i) {
			var fnFormatter = oInfo.formatter,
				oModel,
				sModelName = oInfo.model;

			if (oInfo.path && oInfo.path.indexOf(">") > 0) {
				sModelName = oInfo.path.slice(0, oInfo.path.indexOf(">"));
			}
			oModel = oWithControl.getModel(sModelName);

			if (fnFormatter && fnFormatter.requiresIContext === true) {
				fnFormatter = oInfo.formatter
					= fnFormatter.bind(null, createContextInterface(oWithControl, mSettings, i));
			}
			// wrap formatter only if there is a formatter and async is allowed and either
			// - we use $$valueAsPromise ourselves, or
			// - we are top-level and at least one child has used $$valueAsPromise
			if (fnFormatter && bAsync
					&& (oModel && oModel.$$valueAsPromise || i === undefined && bValueAsPromise)) {
				oInfo.formatter = function () {
					var that = this;
					return SyncPromise.all(arguments).then(function (aArguments) {
						return fnFormatter.apply(that, aArguments);
					});
				};
				oInfo.formatter.textFragments = fnFormatter.textFragments;
			}
			oInfo.mode = BindingMode.OneTime;
			oInfo.parameters = oInfo.parameters || {};
			oInfo.parameters.scope = oScope;
			if (bAsync && oModel && oModel.$$valueAsPromise) { // opt-in to async behavior
				bValueAsPromise = oInfo.parameters.$$valueAsPromise = true;
			}
		}

		try {
			if (oBindingInfo.parts) {
				oBindingInfo.parts.forEach(prepare);
			}
			prepare(oBindingInfo);

			oWithControl.bindProperty("any", oBindingInfo);
			return oWithControl.getBinding("any")
				? SyncPromise.resolve(oWithControl.getAny())
				: null;
		} catch (e) {
			return SyncPromise.reject(e);
		} finally {
			oWithControl.unbindProperty("any", true);
		}
	}
function getAny ( oWithControl , oBindingInfo , mSettings , oScope , bAsync ) { var bValueAsPromise = false ; /*
		 * Prepares the given binding info or part of it; makes it "one time" and binds its
		 * formatter function (if opted in) to an interface object.
		 *
		 * @param {object} oInfo
		 *   a binding info or a part of it
		 * @param {number} i
		 *   index of binding info's part (if applicable)
		 */ function prepare ( oInfo , i ) { var fnFormatter = oInfo . formatter , oModel , sModelName = oInfo . model ; if ( oInfo . path && oInfo . path . indexOf ( ">" ) > 0 ) { sModelName = oInfo . path . slice ( 0 , oInfo . path . indexOf ( ">" ) ) ; } oModel = oWithControl . getModel ( sModelName ) ; if ( fnFormatter && fnFormatter . requiresIContext === true ) { fnFormatter = oInfo . formatter = fnFormatter . bind ( null , createContextInterface ( oWithControl , mSettings , i ) ) ; } // wrap formatter only if there is a formatter and async is allowed and either // - we use $$valueAsPromise ourselves, or // - we are top-level and at least one child has used $$valueAsPromise if ( fnFormatter && bAsync && ( oModel && oModel . $$valueAsPromise || i === undefined && bValueAsPromise ) ) { oInfo . formatter = function ( ) { var that = this ; return SyncPromise . all ( arguments ) . then ( function ( aArguments ) { return fnFormatter . apply ( that , aArguments ) ; } ) ; } ; oInfo . formatter . textFragments = fnFormatter . textFragments ; } oInfo . mode = BindingMode . OneTime ; oInfo . parameters = oInfo . parameters || { } ; oInfo . parameters . scope = oScope ; if ( bAsync && oModel && oModel . $$valueAsPromise ) { // opt-in to async behavior bValueAsPromise = oInfo . parameters . $$valueAsPromise = true ; } } try { if ( oBindingInfo . parts ) { oBindingInfo . parts . forEach ( prepare ) ; } prepare ( oBindingInfo ) ; oWithControl . bindProperty ( "any" , oBindingInfo ) ; return oWithControl . getBinding ( "any" ) ? SyncPromise . resolve ( oWithControl . getAny ( ) ) : null ; } catch ( e ) { return SyncPromise . reject ( e ) ; } finally { oWithControl . unbindProperty ( "any" , true ) ; } }
Gets the value of the control's "any" property via the given binding info.

@param {sap.ui.core.util._with} oWithControl
the "with" control
@param {object} oBindingInfo
the binding info
@param {object} mSettings
map/JSON-object with initial property values, etc.
@param {object} oScope
map of currently known aliases
@param {boolean} bAsync
whether async processing is allowed
@returns {sap.ui.base.SyncPromise|null}
a sync promise which resolves with the property value or is rejected with a corresponding
error (for example, an error thrown by a formatter), or <code>null</code> in case the
binding is not ready (because it refers to a model which is not available)
Gets the value of the control s any property via the given binding info .