code: function (areas) {
          if (__DEV__) {
              zrUtil.assert(zrUtil.isArray(areas));
              zrUtil.each(areas, function (area) {
                  zrUtil.assert(area.brushType, 'Illegal areas');
              });
          }
  
          // If ranges is null/undefined, range state remain.
          // This helps user to dispatchAction({type: 'brush'}) with no areas
          // set but just want to get the current brush select info from a `brush` event.
          if (!areas) {
              return;
          }
  
          this.areas = zrUtil.map(areas, function (area) {
              return generateBrushOption(this.option, area);
          }, this);
      }
docs: If ranges is null/undefined, range state remain.
  
  @param {Array.<Object>} [ranges]