code: function (oPathValue, vProperty, vExpectedType) {
  			var oTarget = jQuery.extend({}, oPathValue);
  
  			Basics.expectType(oPathValue, typeof vProperty === "number" ? "array" : "object");
  			oTarget.path = oPathValue.path + "/" + vProperty;
  			oTarget.value = oPathValue.value[vProperty];
  			if (vExpectedType === true) {
  				oTarget.asExpression = true;
  			} else if (vExpectedType) {
  				Basics.expectType(oTarget, vExpectedType);
  			}
  			return oTarget;
  		}
docs: Descends the path/value pair to the given property or array index. Logs an error and
  throws an error if the result is not of the expected type.
  
  @param {object} oPathValue
  a path/value pair which may contain additional arbitrary properties
  @param {string} oPathValue.path
  the meta model path to start at
  @param {object|any[]} oPathValue.value
  the value at this path
  @param {string|number} vProperty
  the property name or array index
  @param {boolean|string} [vExpectedType]
  the expected type (tested w/ typeof) or the special value "array" for an array;
  if <code>undefined</code> the result is not checked; <code>true</code> means that no
  check happens, but the result carries the <code>asExpression : true</code> flag.
  @returns {object}
  the path/value pair after descending with all original additional properties
  @throws {SyntaxError}
  if the result is not of the expected type