Похоже, что используется недокументированная особенность функции
Array.sort()
Ведь согласно документации, сравнивающая функция
должна однозначно давать порядок, а в вашем примере получается, что
compareFunction(a,b)===compareFunction(b,a)
Насчёт a и b - они как бы есть, но они не указаны в параметрах, потому что не используются. Их можно указать, чтобы как бы соблюсти формальность, но смысла нет конкретно для вашего хитрого примера:
arr.sort((a,b) => -0.5);
Можете также заняться отладкой, чтобы понять, что происходит под капотом:
arr.sort((a,b) => {console.log(a,b); return -0.5});
Ваш пример крайне не удачный для целей обучения. Начинать лучше с простого и/или фундаментального, затем переходить к более сложному и/или частному.