possibleConstructorReturn = function (self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}
DataSet

A data set can:
- add/remove/update data
- gives triggers upon changes in the data
- can  import/export data in various data formats
@param {Array} [data]    Optional array with initial data
the field geometry is like geojson, it can be:
{
    "type": "Point",
    "coordinates": [125.6, 10.1]
}
{
    "type": "LineString",
    "coordinates": [
        [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
    ]
}
{
    "type": "Polygon",
    "coordinates": [
        [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
          [100.0, 1.0], [100.0, 0.0] ]
    ]
}
@param {Object} [options]   Available options: