function compare(a, b, index) {
  return (
    (a.charCodeAt(index) || 0) - (b.charCodeAt(index) || 0) ||
    compare(a, b, index + 1)
  )
}
function compare(a, b, index) {
  return (
    (a.charCodeAt(index) || 0) - (b.charCodeAt(index) || 0) ||
    compare(a, b, index + 1)
  )
}
function compare ( a , b , index ) { return ( ( a . charCodeAt ( index ) || 0 ) - ( b . charCodeAt ( index ) || 0 ) || compare ( a , b , index + 1 ) ) }
This would create an infinite loop if `a` and `b` could be equal, but the list we operate on only has unique values.
This would create an infinite loop if a and b could be equal but the list we operate on only has unique values .