function resolveBinding(vBinding, vModelOrObject, sPath) {
			if (!vBinding) {
				return vBinding;
			}

			var oBindingInfo = typeof vBinding ===  "string" ? BindingInfo.parse(vBinding) : extend({}, vBinding);

			if (!oBindingInfo) {
				return vBinding;
			}

			if (!sPath) {
				sPath = "/";
			}

			// clean the object
			oSimpleControl.unbindProperty("resolved");
			oSimpleControl.unbindObject();
			oSimpleControl.setModel(null);

			if (vModelOrObject instanceof Model) {
				oSimpleControl.setModel(vModelOrObject);
			} else {
				BindingHelper.propagateModels(vModelOrObject, oSimpleControl);
			}

			oSimpleControl.bindObject(sPath);
			oSimpleControl.bindProperty("resolved", oBindingInfo);

			var vValue = oSimpleControl.getResolved();

			return vValue;
		}
Resolves a single string that has binding syntax or object that represents a binding info.
Pure function.

@param {string|object} vBinding The value to resolve. If the value is an object, it will be copied and the real one won't be modified.
@param {*} vModelOrObject The model.
@param {string} [sPath] The path to the referenced entity which is going to be used as a binding context.
@private
@returns {*} The resolved value.