code: function cleanNum(val) {
      return -128 < val && val < 128 && Math.floor(val) !== val ? -(val * 1024 | 0) : val;
    }
docs: - hashing works on 32 bit ints b/c we use bitwise ops - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function) - raise up small numbers so more significant digits are seen by hashing - make small numbers negative to avoid collisions -- most style values are positive numbers - works in practice and it's relatively cheap