code: function resolveEmbeddedBinding(oEnv, sInput, iStart) {
  		var parseObject = JSTokenizer.parseJS,
  			oParseResult,
  			iEnd;
  
  		// an embedded binding: check for a property name that would indicate a complex object
  		if ( rObject.test(sInput.slice(iStart)) ) {
  			oParseResult = parseObject(sInput, iStart);
  			resolveBindingInfo(oEnv, oParseResult.result);
  			return oParseResult;
  		}
  		// otherwise it must be a simple binding (path only)
  		iEnd = sInput.indexOf('}', iStart);
  		if ( iEnd < iStart ) {
  			throw new SyntaxError("no closing braces found in '" + sInput + "' after pos:" + iStart);
  		}
  		return {
  			result: makeSimpleBindingInfo(sInput.slice(iStart + 1, iEnd)),
  			at: iEnd + 1
  		};
  	}
docs: Determines the binding info for the given string sInput starting at the given iStart and
  returns an object with the corresponding binding info as <code>result</code> and the
  position where to continue parsing as <code>at</code> property.
  
  @param {object} oEnv
  the "environment"
  @param {object} oEnv.oContext
  the context object from complexBinding (read-only)
  @param {boolean} oEnv.bTolerateFunctionsNotFound
  if <code>true</code>, unknown functions are gathered in aFunctionsNotFound, otherwise an
  error is logged (read-only)
  @param {string[]} oEnv.aFunctionsNotFound
  a list of functions that could not be found if oEnv.bTolerateFunctionsNotFound is true
  (append only)
  @param {string} sInput
  The input string from which to resolve an embedded binding
  @param {int} iStart
  The start index for binding resolution in the input string
  @returns {object}
  An object with the following properties:
  result: The binding info for the embedded binding
  at: The position after the last character for the embedded binding in the input string