Searching Algorithms (linear search, binary search)

What specific case does this binary search variation handle?
function searchFirstOccurrence(arr, target) {
  let left = 0;
  let right = arr.length - 1;
  let result = -1;
  
  while(left <= right) {
    const mid = Math.floor((left + right) / 2);
    if(arr[mid] === target) {
      result = mid;
      right = mid - 1;
    }
    else if(arr[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return result;
}
Next Question (5/24)