Breaking Changes
- Remove `map.batch` in favor of automatically batching style mutations (i.e. calls to `MapsetLayoutProperty`, `MapsetPaintProperty`, `MapsetFilter`, `MapsetClasses`, etc.) and applying them once per frame, significantly improving performance when updating the style frequently [2355](https://github.com/mapbox/mapbox-gl-js/pull/2355) [#2380](https://github.com/mapbox/mapbox-gl-js/pull/2380)
- Remove `util.throttle` [2345](https://github.com/mapbox/mapbox-gl-js/issues/2345)
New Features & Improvements
- Improve performance of all style mutation methods by only recalculating affected properties [2339](https://github.com/mapbox/mapbox-gl-js/issues/2339)
- Improve fading of labels and icons [2376](https://github.com/mapbox/mapbox-gl-js/pull/2376)
- Improve rendering performance by reducing work done on the main thread [2394](https://github.com/mapbox/mapbox-gl-js/pull/2394)
- Validate filters passed to `MapqueryRenderedFeatures` and `MapquerySourceFeatures` [2349](https://github.com/mapbox/mapbox-gl-js/issues/2349)
- Display a warning if a vector tile's geometry extent is larger than supported [2383](https://github.com/mapbox/mapbox-gl-js/pull/2383)
- Implement property functions (i.e. data-driven styling) for `circle-color` and `circle-size` [1932](https://github.com/mapbox/mapbox-gl-js/pull/1932)
- Add `PopupsetDOMContent` method [2436](https://github.com/mapbox/mapbox-gl-js/pull/2436)
Bugfixes
- Fix a performance regression caused by using 1 `WebWorker` instead of ` cpus - 1` `WebWorker`s, slowing down tile loading times [2408](https://github.com/mapbox/mapbox-gl-js/pull/2408)
- Fix a bug in which `MapqueryRenderedFeatures` would sometimes return features that had been removed [2353](https://github.com/mapbox/mapbox-gl-js/issues/2353)
- Fix `clusterMaxZoom` option on `GeoJSONSource` not working as expected [2374](https://github.com/mapbox/mapbox-gl-js/issues/2374)
- Fix anti-aliased rendering for pattern fills [2372](https://github.com/mapbox/mapbox-gl-js/issues/2372)
- Fix exception caused by calling `MapqueryRenderedFeatures` or `MapquerySourceFeatures` with no arguments
- Fix exception caused by calling `MapsetLayoutProperty` for `text-field` or `icon-image` [2407](https://github.com/mapbox/mapbox-gl-js/issues/2407)