Breaking Changes
- The `GeoJSONSource`, `VideoSource`, `ImageSource` constructors are now private. Please use `map.addSource({...})` to create sources and `map.getSource(...).setData(...)` to update GeoJSON sources. [2667](https://github.com/mapbox/mapbox-gl-js/pull/2667)
- `MaponError` has been removed. You may catch errors by listening for the `error` event. If no listeners are bound to `error`, error messages will be printed to the console. [2852](https://github.com/mapbox/mapbox-gl-js/pull/2852)
New Features & Improvements
- Increase max glyph atlas size to accommodate alphabets with large numbers of characters [2930](https://github.com/mapbox/mapbox-gl-js/pull/2930)
- Add support for filtering features on GeoJSON / vector tile `$id` [2888](https://github.com/mapbox/mapbox-gl-js/pull/2888)
- Update geolocate icon [2973](https://github.com/mapbox/mapbox-gl-js/pull/2973)
- Add a `close` event to `Popup`s [2953](https://github.com/mapbox/mapbox-gl-js/pull/2953)
- Add a `offset` option to `Marker` [2885](https://github.com/mapbox/mapbox-gl-js/pull/2885)
- Print `error` events without any listeners to the console [2852](https://github.com/mapbox/mapbox-gl-js/pull/2852)
- Refactored `Source` interface to prepare for custom source types [2667](https://github.com/mapbox/mapbox-gl-js/pull/2667)
Bugfixes
- Fix opacity property-functions for fill layers [2971](https://github.com/mapbox/mapbox-gl-js/pull/2971)
- Fix `DataCloneError` in Firefox and IE11 [2559](https://github.com/mapbox/mapbox-gl-js/pull/2559)
- Fix bug preventing camera animations from being triggered in `moveend` listeners [2944](https://github.com/mapbox/mapbox-gl-js/pull/2944)
- Fix bug preventing `fill-outline-color` from being unset [2964](https://github.com/mapbox/mapbox-gl-js/pull/2964)
- Fix webpack support [2887](https://github.com/mapbox/mapbox-gl-js/pull/2887)
- Prevent buttons in controls from acting like form submit buttons [2935](https://github.com/mapbox/mapbox-gl-js/pull/2935)
- Fix bug preventing map interactions near two controls in the same corner [2932](https://github.com/mapbox/mapbox-gl-js/pull/2932)
- Fix crash resulting for large style batch queue [2926](https://github.com/mapbox/mapbox-gl-js/issues/2926)