code: function getPropertyPathValue(obj, propertyPath) {
    var properties = Array.isArray(propertyPath) ? propertyPath : propertyPath.split(".");
    if (properties.length === 1) {
      return obj.getProperty(propertyPath);
    } else {
      var nextValue = obj;
      // hack use of some to perform mapFirst operation.
      properties.some(function (prop) {
        nextValue = nextValue.getProperty(prop);
        return nextValue == null;
      });
      return nextValue;
    }
  }
docs: used by EntityQuery and Predicate