src/sap.ui.core/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js
function (oPathValue) {
			if (oPathValue.value === undefined) {
				return undefined;
			}

			Measurement.average(sPerformanceGetExpression, "", aPerformanceCategories);

			if (!bSimpleParserWarningLogged
					&& ManagedObject.bindingParser === BindingParser.simpleParser) {
				Log.warning("Complex binding syntax not active", null, sAnnotationHelper);
				bSimpleParserWarningLogged = true;
			}

			return Expression.expression(oPathValue).then(function (oResult) {
				return Basics.resultToString(oResult, false, oPathValue.complexBinding);
			}, function (e) {
				if (e instanceof SyntaxError) {
					return "Unsupported: " + BindingParser.complexParser.escape(
						Basics.toErrorString(oPathValue.value));
				}
				throw e;
			}).finally(function () {
				Measurement.end(sPerformanceGetExpression);
			}).unwrap();
		}
function (oPathValue) {
			if (oPathValue.value === undefined) {
				return undefined;
			}

			Measurement.average(sPerformanceGetExpression, "", aPerformanceCategories);

			if (!bSimpleParserWarningLogged
					&& ManagedObject.bindingParser === BindingParser.simpleParser) {
				Log.warning("Complex binding syntax not active", null, sAnnotationHelper);
				bSimpleParserWarningLogged = true;
			}

			return Expression.expression(oPathValue).then(function (oResult) {
				return Basics.resultToString(oResult, false, oPathValue.complexBinding);
			}, function (e) {
				if (e instanceof SyntaxError) {
					return "Unsupported: " + BindingParser.complexParser.escape(
						Basics.toErrorString(oPathValue.value));
				}
				throw e;
			}).finally(function () {
				Measurement.end(sPerformanceGetExpression);
			}).unwrap();
		}
function ( oPathValue ) { if ( oPathValue . value === undefined ) { return undefined ; } Measurement . average ( sPerformanceGetExpression , "" , aPerformanceCategories ) ; if ( ! bSimpleParserWarningLogged && ManagedObject . bindingParser === BindingParser . simpleParser ) { Log . warning ( "Complex binding syntax not active" , null , sAnnotationHelper ) ; bSimpleParserWarningLogged = true ; } return Expression . expression ( oPathValue ) . then ( function ( oResult ) { return Basics . resultToString ( oResult , false , oPathValue . complexBinding ) ; } , function ( e ) { if ( e instanceof SyntaxError ) { return "Unsupported: " + BindingParser . complexParser . escape ( Basics . toErrorString ( oPathValue . value ) ) ; } throw e ; } ) . finally ( function ( ) { Measurement . end ( sPerformanceGetExpression ) ; } ) . unwrap ( ) ; }
Calculates an expression. Ensures that errors that are thrown while processing are
handled accordingly.

@param {object} oPathValue
path and value information pointing to the expression (see Expression object)
@returns {Promise|string}
the expression value or "Unsupported: oRawValue" in case of an error or
<code>undefined</code> in case the raw value is undefined; may instead return a
<code>Promise</code> resolving with that result.
Calculates an expression . Ensures that errors that are thrown while processing are handled accordingly .