@botovod '||' Оператор обычно называется логическим или. Если первый операнд имеет значение false, null, undefined, "" (пустая строка) или число 0, то он возвращает второй операнд. В противном случае он возвращает первый операнд.
В данном случае у вас нет синтаксической ошибки, но истинность выражений рассматривается в том порядке, который вы указали.
Выражение (0 || 0.05) вернет 0.05 (см первые 3 предложения)
Затем (5-5) == 0.05, соответственно - это не верно. Ведь 0 никогда не будет равен 0.05. У вас ЛОГИЧЕСКАЯ ошибка.
Советую почитать статьи и поизучать js.
причем, как тут говорилось - "выносите в функцию, тогда падать не будет" - не помогает, умирает поток вне зависимости от вложенности вызывающей процедуры.