If the developer calls Slider.setValue() without a second argument (the handle index), the Slider.activeHandle and Slider.activeHandleIdx get set to null. If the user then clicks on the track to set the slider position, Slider.startDrag() calls Position.cumulativeOffset(null) which is invalid.
To eliminate this possibility, I recommend the following change to slider.js:
setValue: function(sliderValue, handleIdx){
if(!this.active) {
- this.activeHandle = this.handles[handleIdx];
- this.activeHandleIdx = handleIdx;
+ this.activeHandleIdx = handleIdx || 0;
+ this.activeHandle = this.handles[activeHandleIdx];
this.updateStyles();
}