code: function processLauncherRange(range) {
    if (typeof range === 'string') {
      range = range
        .split(',')
        .map(function(rangePart){
  
          rangePart = rangePart.trim();
          if (!rangePart){
            return [];
          }
          if (!RANGE_REGEX.test(rangePart)){
            return [rangePart];
          }
          var limits = range.match(RANGE_REGEX);
          var min = +limits[1], max = +limits[2];
          var delta = max - min;
          return Array
            .apply(null, { length: delta + 1 })
            .map(function (v, i) { return min + i; });
        })
        .reduce(function (a, b) {
          // flatten
          return a.concat(b);
        }, []);
    }
  
    if (!Array.isArray(range)){
      range = [];
    }
  
    return range.map(function (version) {
      return {
        // default
        base: SAUCELABS_BASE,
        version: '' + version
      };
    });
  }
docs: // 
  Generate the launcher range.
  @param {String|Array} range the explicit range to cover (or abstract string)
  can be formed like [0,1,2,3] or '0...3'
  @returns {Array} Array of launcher