HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.7.11/lodash.min.js'></script>
Script Preparation code:
x
 
var x = Math.random() * 1000;
var clientX = Math.random() * 1000;
var px = Math.random() * 1000;
var maxWidth = Math.random() * 1000;
function MAX_INT(a, b) {
  return a - ((a - b) & ((a - b) >> 31));
}
function MIN_INT(a, b) {
  return a - ((a - b) & ((b - a) >> 31));
}
function MAX(a, b) {
  const intA = ~~a;
  const intB = ~~b;
  return intA - ((intA - intB) & ((intA - intB) >> 31));
}
function MIN(a, b) {
  const intA = ~~a;
  const intB = ~~b;
  return intA - ((intA - intB) & ((intB - intA) >> 31));
}
Tests:
  • Math.max/min

     
    Math.min(Math.max(x + clientX - px, 0), maxWidth) - x
  • if

     
    if(x + clientX - px < 0) return 0;
    if(x + clientX - px > 750) return maxWidth;
    return x + clientX - px;
  • ternary

     
    return x + clientX - px < 0
                ? 0
                : (x + clientX - px > maxWidth
                    ? maxWidth
                    : x + clientX - px) - x;
  • bitwise

     
    MIN_INT(MAX_INT(x + clientX - px, 0), maxWidth)
  • & ~~

     
    MIN(MAX(x + clientX - px, 0), maxWidth)
  • lodash clamp

     
    _.clamp(x + clientX - px, 0, maxWidth)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Math.max/min
    if
    ternary
    bitwise
    & ~~
    lodash clamp

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36
Chrome 100 on Linux
View result in a separate tab
Test name Executions per second
Math.max/min 2566094.8 Ops/sec
if 7606500.5 Ops/sec
ternary 7805290.5 Ops/sec
bitwise 3752870.0 Ops/sec
& ~~ 3732540.8 Ops/sec
lodash clamp 3431596.0 Ops/sec