Как то так должно быть:

if (isNan(angle)) angle = 0;
if (angle < 0) angle -= 360 * ((angle % 360) - 1) | 0);
if (angle > 360) angle -= 360 * ((angle % 360) | 0);