code: function (dataByCoordSys) {
          var lastCoordSys = this._lastDataByCoordSys;
          var contentNotChanged = !!lastCoordSys
              && lastCoordSys.length === dataByCoordSys.length;
  
          contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {
              var lastDataByAxis = lastItemCoordSys.dataByAxis || {};
              var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};
              var thisDataByAxis = thisItemCoordSys.dataByAxis || [];
              contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length;
  
              contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {
                  var thisItem = thisDataByAxis[indexAxis] || {};
                  var lastIndices = lastItem.seriesDataIndices || [];
                  var newIndices = thisItem.seriesDataIndices || [];
  
                  contentNotChanged
                      &= lastItem.value === thisItem.value
                      && lastItem.axisType === thisItem.axisType
                      && lastItem.axisId === thisItem.axisId
                      && lastIndices.length === newIndices.length;
  
                  contentNotChanged && each(lastIndices, function (lastIdxItem, j) {
                      var newIdxItem = newIndices[j];
                      contentNotChanged
                          &= lastIdxItem.seriesIndex === newIdxItem.seriesIndex
                          && lastIdxItem.dataIndex === newIdxItem.dataIndex;
                  });
              });
          });
  
          this._lastDataByCoordSys = dataByCoordSys;
  
          return !!contentNotChanged;
      }
docs: FIXME Should we remove this but leave this to user?