code: function calc() {
      if (!isValueSet && !areAttrsSet)
        value = slider.getAttribute('value');
      if (!isAttrNum(value))
        value = (min + max) / 2;;
      // snap to step intervals (WebKit sometimes does not - bug?)
      value = Math.round((value - min) / step) * step + min;
      if (value < min)
        value = min;
      else if (value > max)
        value = min + ~~(range / step) * step;
    }
docs: recalculates value property