docs: function(propertyInfos, prototype, base) {
        // per-prototype storage for reflected properties
        prototype.reflect = prototype.reflect || {};
        // ensure a prototype value for each property
        // and update the property's reflect to attribute status
        for (var n in propertyInfos) {
          var value = propertyInfos[n];
          // value has metadata if it has a `reflect` property
          if (value && value.reflect !== undefined) {
            prototype.reflect[n] = Boolean(value.reflect);
            value = value.value;
          }
          // only set a value if one is specified
          if (value !== undefined) {
            prototype[n] = value;
          }
        }
      }