code: function(userAgentWrapper) {
              // ----------------------------------------------- early termination
  
              var cacheKey = userAgentWrapper.ua.toLowerCase();
  
              var values;
              if (this._propertiesCache.hasOwnProperty(cacheKey)) {
                  values = this._propertiesCache[cacheKey];
              }
  
              if (values != null) {
                  return values;
              }
  
              // ----------------------------------------------------- computation
  
              values = this._computeProperties(userAgentWrapper);
  
              // ---------------------------------------------------------- output
  
              this._propertiesCache[cacheKey] = values;
              return values;
          }
docs: Returns properties corresponding to given user agent information.
  
  <p>
  The returned properties match a particular API: the one finally exposed by this class. Also, they benefit from a cache mechanism.
  </p>
  
  @param {Object} userAgentWrapper The user agent wrapper to use (see <em>aria.core.useragent.UserAgent.getUserAgentInfo</em>)
  
  @private