src/sap.m/src/sap/m/GrowingEnablement.js
function(oContext, oBindingInfo, bSuppressInvalidate) {

			var oControl = this._oControl,
				oBinding = oBindingInfo.binding,
				oItem = this.createListItem(oContext, oBindingInfo);

			if (oBinding.isGrouped()) {
				// creates group header if need
				var aItems = oControl.getItems(true),
					oLastItem = aItems[aItems.length - 1],
					sModelName = oBindingInfo.model,
					oGroupInfo = oBinding.getGroup(oItem.getBindingContext(sModelName));

				if (oLastItem && oLastItem.isGroupHeader()) {
					oControl.removeAggregation("items", oLastItem, true);
					this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oLastItem, bSuppressInvalidate);
					oLastItem = aItems[aItems.length - 1];
				}

				if (!oLastItem || oGroupInfo.key !== oBinding.getGroup(oLastItem.getBindingContext(sModelName)).key) {
					var oGroupHeader = (oBindingInfo.groupHeaderFactory) ? oBindingInfo.groupHeaderFactory(oGroupInfo) : null;
					if (oControl.getGrowingDirection() == ListGrowingDirection.Upwards) {
						this.applyPendingGroupItem();
						this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oGroupHeader, bSuppressInvalidate);
					} else {
						this.appendGroupItem(oGroupInfo, oGroupHeader, bSuppressInvalidate);
					}
				}
			}

			oControl.addAggregation("items", oItem, bSuppressInvalidate);
			if (bSuppressInvalidate) {
				this._aChunk.push(oItem);
			}
		}
function(oContext, oBindingInfo, bSuppressInvalidate) {

			var oControl = this._oControl,
				oBinding = oBindingInfo.binding,
				oItem = this.createListItem(oContext, oBindingInfo);

			if (oBinding.isGrouped()) {
				// creates group header if need
				var aItems = oControl.getItems(true),
					oLastItem = aItems[aItems.length - 1],
					sModelName = oBindingInfo.model,
					oGroupInfo = oBinding.getGroup(oItem.getBindingContext(sModelName));

				if (oLastItem && oLastItem.isGroupHeader()) {
					oControl.removeAggregation("items", oLastItem, true);
					this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oLastItem, bSuppressInvalidate);
					oLastItem = aItems[aItems.length - 1];
				}

				if (!oLastItem || oGroupInfo.key !== oBinding.getGroup(oLastItem.getBindingContext(sModelName)).key) {
					var oGroupHeader = (oBindingInfo.groupHeaderFactory) ? oBindingInfo.groupHeaderFactory(oGroupInfo) : null;
					if (oControl.getGrowingDirection() == ListGrowingDirection.Upwards) {
						this.applyPendingGroupItem();
						this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oGroupHeader, bSuppressInvalidate);
					} else {
						this.appendGroupItem(oGroupInfo, oGroupHeader, bSuppressInvalidate);
					}
				}
			}

			oControl.addAggregation("items", oItem, bSuppressInvalidate);
			if (bSuppressInvalidate) {
				this._aChunk.push(oItem);
			}
		}
function ( oContext , oBindingInfo , bSuppressInvalidate ) { var oControl = this . _oControl , oBinding = oBindingInfo . binding , oItem = this . createListItem ( oContext , oBindingInfo ) ; if ( oBinding . isGrouped ( ) ) { // creates group header if need var aItems = oControl . getItems ( true ) , oLastItem = aItems [ aItems . length - 1 ] , sModelName = oBindingInfo . model , oGroupInfo = oBinding . getGroup ( oItem . getBindingContext ( sModelName ) ) ; if ( oLastItem && oLastItem . isGroupHeader ( ) ) { oControl . removeAggregation ( "items" , oLastItem , true ) ; this . _fnAppendGroupItem = this . appendGroupItem . bind ( this , oGroupInfo , oLastItem , bSuppressInvalidate ) ; oLastItem = aItems [ aItems . length - 1 ] ; } if ( ! oLastItem || oGroupInfo . key !== oBinding . getGroup ( oLastItem . getBindingContext ( sModelName ) ) . key ) { var oGroupHeader = ( oBindingInfo . groupHeaderFactory ) ? oBindingInfo . groupHeaderFactory ( oGroupInfo ) : null ; if ( oControl . getGrowingDirection ( ) == ListGrowingDirection . Upwards ) { this . applyPendingGroupItem ( ) ; this . _fnAppendGroupItem = this . appendGroupItem . bind ( this , oGroupInfo , oGroupHeader , bSuppressInvalidate ) ; } else { this . appendGroupItem ( oGroupInfo , oGroupHeader , bSuppressInvalidate ) ; } } } oControl . addAggregation ( "items" , oItem , bSuppressInvalidate ) ; if ( bSuppressInvalidate ) { this . _aChunk . push ( oItem ) ; } }
appends single list item to the list
appends single list item to the list