function cloneBinding(oSource, sName, oClone, sTargetName) {
			var oBindingInfo = oSource.mBindingInfos[sName];
			oBindingInfo = oBindingInfo || oSource.getBindingInfo(sName); // fallback for forwarded bindings
			var oCloneBindingInfo = Object.assign({}, oBindingInfo);

			// clone the template if it is not sharable
			if (!oBindingInfo.templateShareable && oBindingInfo.template && oBindingInfo.template.clone) {
				oCloneBindingInfo.template = oBindingInfo.template.clone(sIdSuffix, aLocalIds);
				delete oCloneBindingInfo.factory;
			} else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
				// a 'clone' operation implies sharing the template (if templateShareable is not set to false)
				oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
				Log.error(
					"During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " +
					"The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " +
					"(The template is used in aggregation '" + sName + "' of object '" + oSource.getId() + "')." +
					"For more information, see documentation under 'Aggregation Binding'.");
			}

			// remove the runtime binding data (otherwise the property will not be connected again!)
			delete oCloneBindingInfo.binding;
			delete oCloneBindingInfo.modelChangeHandler;
			delete oCloneBindingInfo.dataStateChangeHandler;
			delete oCloneBindingInfo.modelRefreshHandler;

			if (oBindingInfo.factory || oBindingInfo.template) {
				oClone.bindAggregation(sTargetName, oCloneBindingInfo);
			} else {
				oClone.bindProperty(sTargetName, oCloneBindingInfo);
			}
		}
/**
		 * Clones the BindingInfo for the aggregation/property with the given name of this ManagedObject and binds
		 * the aggregation/property with the given target name on the given clone using the same BindingInfo.
		 *
		 * @param {sap.ui.base.ManagedObject} oSource Source of the clone operation
		 * @param {string} sName the name of the binding to clone
		 * @param {sap.ui.base.ManagedObject} oClone the object on which to establish the cloned binding
		 * @param {string} sTargetName the name of the clone's aggregation to bind
		 * @private
		 */
Clones the BindingInfo for the aggregation/property with the given name of this ManagedObject and binds
the aggregation/property with the given target name on the given clone using the same BindingInfo.


Clones the BindingInfo for the aggregation / property with the given name of this ManagedObject and binds the aggregation / property with the given target name on the given clone using the same BindingInfo .
function cloneBinding(oSource, sName, oClone, sTargetName) {
			var oBindingInfo = oSource.mBindingInfos[sName];
			oBindingInfo = oBindingInfo || oSource.getBindingInfo(sName); 
			var oCloneBindingInfo = Object.assign({}, oBindingInfo);
			if (!oBindingInfo.templateShareable && oBindingInfo.template && oBindingInfo.template.clone) {
				oCloneBindingInfo.template = oBindingInfo.template.clone(sIdSuffix, aLocalIds);
				delete oCloneBindingInfo.factory;
			} else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
				oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
				Log.error(
					"During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " +
					"The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " +
					"(The template is used in aggregation '" + sName + "' of object '" + oSource.getId() + "')." +
					"For more information, see documentation under 'Aggregation Binding'.");
			}
			delete oCloneBindingInfo.binding;
			delete oCloneBindingInfo.modelChangeHandler;
			delete oCloneBindingInfo.dataStateChangeHandler;
			delete oCloneBindingInfo.modelRefreshHandler;
			if (oBindingInfo.factory || oBindingInfo.template) {
				oClone.bindAggregation(sTargetName, oCloneBindingInfo);
			} else {
				oClone.bindProperty(sTargetName, oCloneBindingInfo);
			}
		}
function cloneBinding ( oSource , sName , oClone , sTargetName ) { var oBindingInfo = oSource . mBindingInfos [ sName ] ; oBindingInfo = oBindingInfo || oSource . getBindingInfo ( sName ) ; var oCloneBindingInfo = Object . assign ( { } , oBindingInfo ) ; if ( ! oBindingInfo . templateShareable && oBindingInfo . template && oBindingInfo . template . clone ) { oCloneBindingInfo . template = oBindingInfo . template . clone ( sIdSuffix , aLocalIds ) ; delete oCloneBindingInfo . factory ; } else if ( oBindingInfo . templateShareable === MAYBE_SHAREABLE_OR_NOT ) { oBindingInfo . templateShareable = oCloneBindingInfo . templateShareable = true ; Log . error ( "During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " + "The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " + "(The template is used in aggregation '" + sName + "' of object '" + oSource . getId ( ) + "')." + "For more information, see documentation under 'Aggregation Binding'." ) ; } delete oCloneBindingInfo . binding ; delete oCloneBindingInfo . modelChangeHandler ; delete oCloneBindingInfo . dataStateChangeHandler ; delete oCloneBindingInfo . modelRefreshHandler ; if ( oBindingInfo . factory || oBindingInfo . template ) { oClone . bindAggregation ( sTargetName , oCloneBindingInfo ) ; } else { oClone . bindProperty ( sTargetName , oCloneBindingInfo ) ; } }
Clones the BindingInfo for the aggregation/property with the given name of this ManagedObject and binds
 the aggregation/property with the given target name on the given clone using the same BindingInfo.
Clones the BindingInfo for the aggregation / property with the given name of this ManagedObject and binds the aggregation / property with the given target name on the given clone using the same BindingInfo .
// fallback for forwarded bindings // clone the template if it is not sharable // a 'clone' operation implies sharing the template (if templateShareable is not set to false) // remove the runtime binding data (otherwise the property will not be connected again!)