docs: function polygon() {
    var args = mlutil.asArray.apply(null, arguments);
  
    var points = [];
    var arg = null;
    var i=0;
    for (; i < args.length; i++) {
      arg = args[i];
      if (arg instanceof PointRegionDef) {
        points.push(arg.point[0]);
      } else if (arg instanceof LatLongDef) {
        points.push(arg);
      } else if (arg instanceof Array && arg.length === 2){
        points.push(new LatLongDef(arg[0], arg[1]));
      } else {
        throw new Error('unsupported parameter for polygon: '+mlutil.identify(arg, true));
      }
    }
  
    return new PolygonRegionDef(new PointRegionDef(points));
  }