Vejo que, quando executo seu código, mostra um erro de Maximum call stack size exceeded, e isso geralmente acontece quando as chamadas recursivas não possuem uma condição de parada clara, o que faz com que a função continue chamando a si mesma infinitamente.
Esse erro ocorreu por conta do trecho onde verifica se o sum é unidade if (sum / 10 != 0)
, mas só que o sum sempre será diferente de zero, então ficará chamando a função infinitamente, e assim dando o erro de Maximum call stack size exceeded.