code: function (container, path) {
              var typeUtils = ariaUtilsType;
              if (!container || !path || !typeUtils.isObject(container)) {
                  return;
              }
              if (typeUtils.isString(path)) {
                  path = this.parse(path);
              }
              if (!typeUtils.isArray(path) || typeUtils.isNumber(path[0])) {
                  return;
              }
  
              var obj = container, param;
              for (var i = 0, len = path.length; i < len; i += 1) {
                  param = path[i];
  
                  if (typeUtils.isNumber(param) && !typeUtils.isArray(obj)) {
                      return null;
                  }
                  if (typeUtils.isString(param) && (!typeUtils.isObject(obj) || !(param in obj))) {
                      return null;
                  }
  
                  if (i === len - 1) {
                      return {
                          container : obj,
                          property : param,
                          value : obj[param]
                      };
                  } else {
                      obj = obj[param];
                  }
              }
          }
docs: Describe the object referred by a certain path in the container object. Returns an object containing
  <ul>
  <li>container : The last containing object, it's the object in which the last property is defined</li>
  <li>property : The name of the last property in the path</li>
  <li>value : The value of the property specified by the path</li>
  </ul>
  For example calling <code>describe(obj, "a.b.c")</code> returns
  
  <pre>
  {
  container : obj.a.b,
  property : 'c',
  value : 'the value of obj.a.b.c'
  }
  </pre>
  
  If the path doesn't exist in the container object this function returns null
  @param {Object} container
  @param {String} path
  @return {Object}