code: function getPropArray(classDef) {
    // Translate the property names into definitions with property/attribute names
    return Object.keys(classDef.properties).map(propertyName => ({
      propertyName,
      attributeName: Util.hyphenate(propertyName),
      type: classDef.properties[propertyName].type,
      order: classDef.properties[propertyName].order,
      noGetterFromSetter: classDef.properties[propertyName].noGetterFromSetter,
      propagateToChildren: classDef.properties[propertyName].propagateToChildren,
      value: classDef.properties[propertyName].value,
    }))
      .sort((a, b) => {
        if (a.order !== undefined && b.order !== undefined) {
          return a.order - b.order;
        } else if (a.order !== undefined) {
          return -1;
        } else if (b.order !== undefined) {
          return 1;
        } else {
          return 0;
        }
      });
  }
docs: /*
  Get an array of property descriptions.
  
  @method
  @private
  @param {Object} classDef