если числа только положительные, то можно Math.floor попробовать.
И что-то мне подсказывает, что order нужно делить на 10, а не на 100 на каждом шаге.
если честно я подошел к задаче чисто с точки зрения алгоритмов, не делая бенчмарки и т.д.
const isPalindrome = num => {
let n = num;
let order = 10 ** ~~(Math.log10(n));
while (n >= 10) {
const leftDigit = ~~(n / order);
const rightDigit = n % 10;
if (leftDigit !== rightDigit) {
return false;
}
n = Math.trunc((n - leftDigit * order) / 10);
order /= 100;
}
return true;
};
Не то что бы нельзя декомпилировать байткод, но никто этим заниматься не будет.