private static long BiggestPowerTen()

in edge-util/src/es6numberserializer/NumberFastDToA.cs [190:318]


        private 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
                    goto case 29;
                case 29:
                case 28:
                case 27:
                    if (kTen8 <= number)
                    {
                        power = kTen8;
                        exponent = 8;
                        break;
                    }  
                    // else fallthrough
                    goto case 26;
                case 26:
                case 25:
                case 24:
                    if (kTen7 <= number)
                    {
                        power = kTen7;
                        exponent = 7;
                        break;
                    }  
                    // else fallthrough
                    goto case 23;
                case 23:
                case 22:
                case 21:
                case 20:
                    if (kTen6 <= number)
                    {
                        power = kTen6;
                        exponent = 6;
                        break;
                    }  
                    // else fallthrough
                    goto case 19;
                case 19:
                case 18:
                case 17:
                    if (kTen5 <= number)
                    {
                        power = kTen5;
                        exponent = 5;
                        break;
                    }  
                    // else fallthrough
                    goto case 16;
                case 16:
                case 15:
                case 14:
                    if (kTen4 <= number)
                    {
                        power = kTen4;
                        exponent = 4;
                        break;
                    }  // else fallthrough
                    goto case 13;
                case 13:
                case 12:
                case 11:
                case 10:
                    if (1000 <= number)
                    {
                        power = 1000;
                        exponent = 3;
                        break;
                    }  
                    // else fallthrough
                    goto case 9;
                case 9:
                case 8:
                case 7:
                    if (100 <= number)
                    {
                        power = 100;
                        exponent = 2;
                        break;
                    }  
                    // else fallthrough
                    goto case 6;
                case 6:
                case 5:
                case 4:
                    if (10 <= number)
                    {
                        power = 10;
                        exponent = 1;
                        break;
                    }  
                    // else fallthrough
                    goto case 3;
                case 3:
                case 2:
                case 1:
                    if (1 <= number)
                    {
                        power = 1;
                        exponent = 0;
                        break;
                    }  
                    // else fallthrough
                    goto case 0;
                case 0:
                    power = 0;
                    exponent = -1;
                    break;
                default:
                    // Following assignments are here to silence compiler warnings.
                    power = 0;
                    exponent = 0;
                    break;
                    // UNREACHABLE();
            }
            return ((long)power << 32) | (0xffffffffL & exponent);
        }