in rhino/src/main/java/org/mozilla/javascript/v8dtoa/FastDtoa.java [180:276]
static long biggestPowerTen(int number, int number_bits) {
int power, exponent;
switch (number_bits) {
case 32:
case 31:
case 30:
if (kTen9 <= number) {
power = kTen9;
exponent = 9;
break;
} // else fallthrough
case 29:
case 28:
case 27:
if (kTen8 <= number) {
power = kTen8;
exponent = 8;
break;
} // else fallthrough
case 26:
case 25:
case 24:
if (kTen7 <= number) {
power = kTen7;
exponent = 7;
break;
} // else fallthrough
case 23:
case 22:
case 21:
case 20:
if (kTen6 <= number) {
power = kTen6;
exponent = 6;
break;
} // else fallthrough
case 19:
case 18:
case 17:
if (kTen5 <= number) {
power = kTen5;
exponent = 5;
break;
} // else fallthrough
case 16:
case 15:
case 14:
if (kTen4 <= number) {
power = kTen4;
exponent = 4;
break;
} // else fallthrough
case 13:
case 12:
case 11:
case 10:
if (1000 <= number) {
power = 1000;
exponent = 3;
break;
} // else fallthrough
case 9:
case 8:
case 7:
if (100 <= number) {
power = 100;
exponent = 2;
break;
} // else fallthrough
case 6:
case 5:
case 4:
if (10 <= number) {
power = 10;
exponent = 1;
break;
} // else fallthrough
case 3:
case 2:
case 1:
if (1 <= number) {
power = 1;
exponent = 0;
break;
} // else fallthrough
case 0:
power = 0;
exponent = -1;
break;
default:
// Following assignments are here to silence compiler warnings.
power = 0;
exponent = 0;
// UNREACHABLE();
}
return ((long) power << 32) | (0xffffffffL & exponent);
}