b5b4549 / #8613 handled the edge case for layout properties, but not paint properties. Move the check for a degenerate range to interpolationFactor in order to handle both correctly.
This fixes a bug where, for a zoom value greater than that of the highest zoom
stop, composite function interpolation would return nan. (Blocking a render
test over in #8593)
* Add failing tests for composite function edge case
The failing cases here are:
- Should interpolate before the first stop
- Should interpolate past the last stop
* Fix edge case in composite function interpolation
* Hold functions constant outside stop-defined domain