function getRoundedOffsets(data, shouldRound) {
    var _data$offsets = data.offsets,
        popper = _data$offsets.popper,
        reference = _data$offsets.reference;
    var round = Math.round,
        floor = Math.floor;

    var noRound = function noRound(v) {
      return v;
    };

    var referenceWidth = round(reference.width);
    var popperWidth = round(popper.width);

    var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
    var isVariation = data.placement.indexOf('-') !== -1;
    var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
    var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;

    var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
    var verticalToInteger = !shouldRound ? noRound : round;

    return {
      left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
      top: verticalToInteger(popper.top),
      bottom: verticalToInteger(popper.bottom),
      right: horizontalToInteger(popper.right)
    };
  }
@function
@memberof Popper.Utils
@argument {Object} data - The data object generated by `update` method
@argument {Boolean} shouldRound - If the offsets should be rounded at all
@returns {Object} The popper's position offsets rounded

The tale of pixel-perfect positioning. It's still not 100% perfect, but as
good as it can be within reason.
Discussion here: https://github.com/FezVrasta/popper.js/pull/715

Low DPI screens cause a popper to be blurry if not using full pixels (Safari
as well on High DPI screens).

Firefox prefers no rounding for positioning and does not have blurriness on
high DPI screens.

Only horizontal placement and left/right values need to be considered.