docs: function() {
              var supportsPropertyDescriptors = this.supportsPropertyDescriptors();
  
              ariaUtilsArray.forEach(this._deprecatedProperties, function(property) {
                  // ----------------------------------------------- destructuring
  
                  var name = property.name;
                  var type = property.type;
                  var underlying = property.underlying;
                  var loggingMessage = property.loggingMessage;
                  var loggingMessageArguments = property.loggingMessageArguments;
  
                  // -------------------------------------------------- processing
  
                  var self = this;
  
                  if (type == "attribute" && supportsPropertyDescriptors) {
                      var prefixedName = "_" + name;
                      this[prefixedName] = this[name];
  
                      Object.defineProperty(this, name, {
                          get : function () {
                              self.$logWarn(loggingMessage, loggingMessageArguments);
                              return self[prefixedName];
                          },
                          set : function (value) {
                              self.$logWarn(loggingMessage, loggingMessageArguments);
                              self[prefixedName] = value;
                          }
                      });
                  } else if (type == "method") {
                      this[name] = function() {
                          self.$logWarn(loggingMessage, loggingMessageArguments);
                          return underlying.apply(self, arguments);
                      };
                  }
              }, this);
          }