docs: function(attrs, params) {
        params = params || {};
        var options = {};
        for(var key in attrs) {
          if (attrs[key] || attrs[key] === 0) {
            if (key.match(/^on[A-Z]/)) { //skip events, i.e. on-click
              continue;
            } else if (key.match(/ControlOptions$/)) { // skip controlOptions
              continue;
            } else {
              // nested conversions need to be typechecked
              // (non-strings are fully converted)
              if (typeof attrs[key] !== 'string') {
                options[key] = attrs[key];
              } else {
                if (params.doNotConverStringToNumber &&
                  attrs[key].match(/^[0-9]+$/)
                ) {
                  options[key] = attrs[key];
                } else {
                  options[key] = toOptionValue(attrs[key], {key: key, scope: params.scope});
                }
              }
            }
          } // if (attrs[key])
        } // for(var key in attrs)
        return options;
      }