public class org.jruby.util.ConvertDouble$DoubleConverter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.util.ConvertDouble$DoubleConverter
super_class: java.lang.Object
{
private byte[] bytes;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int index;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int endIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean isStrict;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private char[] chars;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private int charsIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int significantDigitsProcessed;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int adjustExponent;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean wroteExponent;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private double result;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private static final int SIGNIFICANT_DIGITS_LIMIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30
private static final int EXPONENT_DIGITS_LIMIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int MAX_EXPONENT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MAX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 39
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc 10.0
ldc 3.0
invokestatic java.lang.Math.pow:(DD)D
d2i
iconst_1
isub
putstatic org.jruby.util.ConvertDouble$DoubleConverter.MAX_EXPONENT:I
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
public void init(org.jruby.util.ByteList, boolean);
descriptor: (Lorg/jruby/util/ByteList;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
putfield org.jruby.util.ConvertDouble$DoubleConverter.bytes:[B
1: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.begin:()I
putfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
2: aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
aload 1
invokevirtual org.jruby.util.ByteList.length:()I
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.endIndex:I
3: aload 0
iload 2
putfield org.jruby.util.ConvertDouble$DoubleConverter.isStrict:Z
4: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.length:()I
iconst_2
iadd
bipush 39
invokestatic java.lang.Math.min:(II)I
newarray 5
putfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
5: aload 0
iconst_0
putfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
6: aload 0
iconst_0
putfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
7: aload 0
iconst_0
putfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
8: aload 0
iconst_0
putfield org.jruby.util.ConvertDouble$DoubleConverter.wroteExponent:Z
9: aload 0
ldc -1.0
putfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
0 11 1 list Lorg/jruby/util/ByteList;
0 11 2 isStrict Z
MethodParameters:
Name Flags
list
isStrict
private byte next();
descriptor: ()B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.bytes:[B
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
dup_x1
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
baload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
private boolean previous();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
iconst_1
isub
putfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
private boolean isEOS();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.endIndex:I
if_icmplt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
private boolean stopParsing();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.endIndex:I
putfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
private static boolean isDigit(byte);
descriptor: (B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 48
if_icmplt 1
iload 0
bipush 57
if_icmpgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 b B
MethodParameters:
Name Flags
b
private static boolean isExponent(byte);
descriptor: (B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 101
if_icmpeq 1
iload 0
bipush 69
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 b B
MethodParameters:
Name Flags
b
private static boolean isWhitespace(byte);
descriptor: (B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 32
if_icmpeq 2
iload 0
bipush 13
if_icmpgt 1
iload 0
bipush 9
if_icmplt 1
iload 0
bipush 11
if_icmpne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 b B
MethodParameters:
Name Flags
b
private void addToResult(byte);
descriptor: (B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
dup_x1
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
iload 1
i2c
castore
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
0 2 1 b B
MethodParameters:
Name Flags
b
private void addExponentToResult(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iload 1
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: java.lang.String int
StackMap stack:
aload 0
aload 2
iload 3
invokevirtual java.lang.String.charAt:(I)C
i2b
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 2
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 3 6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
0 7 1 exponent I
1 7 2 exp Ljava/lang/String;
2 6 3 i I
MethodParameters:
Name Flags
exponent
private boolean eatUnderscores();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: goto 7
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iload 1
bipush 95
if_icmpeq 5
3: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.previous:()Z
pop
4: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ireturn
5: StackMap locals: int
StackMap stack:
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.isStrict:Z
ifeq 7
6: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
end local 1 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 1
8: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 7 1 value B
private double completeCalculation();
descriptor: ()D
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
ifeq 1
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
iconst_1
if_icmpne 3
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
iconst_0
caload
bipush 45
if_icmpne 3
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
2: dconst_0
dreturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
iconst_1
isub
caload
i2b
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isExponent:(B)Z
ifeq 7
4: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
5: aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addExponentToResult:(I)V
6: goto 13
StackMap locals:
StackMap stack:
7: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.isStrict:Z
ifeq 10
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifne 10
8: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
9: goto 13
StackMap locals:
StackMap stack:
10: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.wroteExponent:Z
ifne 13
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
ifeq 13
11: aload 0
bipush 69
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
12: aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addExponentToResult:(I)V
13: StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
iconst_0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.charsIndex:I
invokespecial java.lang.String.<init>:([CII)V
invokestatic org.jruby.util.SafeDoubleParser.parseDouble:(Ljava/lang/String;)Ljava/lang/Double;
invokevirtual java.lang.Double.doubleValue:()D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
private boolean strictError();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.isStrict:Z
ifeq 2
1: new org.jruby.util.ConvertDouble$DoubleConverter$LightweightNumberFormatException
dup
ldc "does not meet strict criteria"
invokespecial org.jruby.util.ConvertDouble$DoubleConverter$LightweightNumberFormatException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
public double parse(org.jruby.util.ByteList, boolean, boolean);
descriptor: (Lorg/jruby/util/ByteList;ZZ)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.init:(Lorg/jruby/util/ByteList;Z)V
1: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.skipWhitespace:()Z
ifeq 2
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.completeCalculation:()D
dreturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseOptionalSign:()Z
ifeq 3
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.completeCalculation:()D
dreturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseDigits:()Z
pop
4: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
ldc -1.0
dcmpl
ifeq 6
5: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
dreturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.completeCalculation:()D
dreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
0 7 1 list Lorg/jruby/util/ByteList;
0 7 2 strict Z
0 7 3 is19 Z
MethodParameters:
Name Flags
list
strict
is19
private boolean skipWhitespace();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=1
start local 0 0: goto 4
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isWhitespace:(B)Z
ifeq 3
goto 4
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.previous:()Z
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 1
5: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 4 1 value B
private boolean parseOptionalSign();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 1: iload 1
bipush 45
if_icmpne 4
2: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
3: goto 6
StackMap locals: int
StackMap stack:
4: iload 1
bipush 43
if_icmpeq 6
5: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.previous:()Z
pop
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
1 7 1 sign B
private boolean parseDigits();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifne 11
1: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifeq 7
3: iload 1
bipush 48
if_icmpeq 5
4: aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
5: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
6: goto 34
StackMap locals:
StackMap stack:
7: iload 1
bipush 46
if_icmpne 10
8: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
9: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseDecimalDigits:()Z
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ireturn
end local 1 11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
12: goto 34
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 14: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifeq 22
15: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
bipush 30
if_icmpge 20
16: iload 1
bipush 48
if_icmpne 17
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
ifle 34
17: StackMap locals: int
StackMap stack:
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
18: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
19: goto 34
20: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
21: goto 34
StackMap locals:
StackMap stack:
22: iload 1
bipush 46
if_icmpne 25
23: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
24: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseDecimalDigits:()Z
ireturn
25: StackMap locals:
StackMap stack:
iload 1
bipush 95
if_icmpne 28
26: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.verifyNumberAfterUnderscore:()V
27: goto 34
StackMap locals:
StackMap stack:
28: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isExponent:(B)Z
ifeq 31
29: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
30: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseExponent:()Z
ireturn
31: StackMap locals:
StackMap stack:
iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isWhitespace:(B)Z
ifeq 33
32: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.skipWhitespace:()Z
ireturn
33: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
ireturn
end local 1 34: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 13
35: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 11 1 value B
14 34 1 value B
private boolean parseDecimalDigits();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 1
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
ireturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iload 1
bipush 95
if_icmpne 6
3: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
4: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 5
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
ireturn
5: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
6: StackMap locals:
StackMap stack:
iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifeq 14
7: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
bipush 30
if_icmpge 11
8: iload 1
bipush 48
if_icmpne 9
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
ifeq 12
9: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
10: goto 12
11: StackMap locals:
StackMap stack:
bipush 48
istore 1
12: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
13: goto 33
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
ireturn
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
16: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifeq 24
17: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
bipush 30
if_icmpge 33
18: iload 1
bipush 48
if_icmpne 21
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
ifne 21
19: aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
iconst_1
isub
putfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
20: goto 33
21: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
iconst_1
iadd
putfield org.jruby.util.ConvertDouble$DoubleConverter.significantDigitsProcessed:I
22: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
23: goto 33
StackMap locals:
StackMap stack:
24: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isExponent:(B)Z
ifeq 27
25: aload 0
iload 1
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addToResult:(B)V
26: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.parseExponent:()Z
ireturn
27: StackMap locals:
StackMap stack:
iload 1
bipush 95
if_icmpne 30
28: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.verifyNumberAfterUnderscore:()V
29: goto 33
StackMap locals:
StackMap stack:
30: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isWhitespace:(B)Z
ifeq 32
31: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.skipWhitespace:()Z
ireturn
32: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
ireturn
33: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 15
34: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 35 1 value B
private boolean parseExponent();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.eatUnderscores:()Z
ifeq 1
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ireturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: iload 1
bipush 45
if_icmpne 8
6: iconst_1
istore 4
7: goto 30
StackMap locals: org.jruby.util.ConvertDouble$DoubleConverter int int int int
StackMap stack:
8: iload 1
bipush 43
if_icmpeq 30
9: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.previous:()Z
pop
10: goto 30
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
12: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifeq 21
13: iload 3
iconst_3
if_icmpge 18
14: iload 1
bipush 48
if_icmpne 15
iload 3
ifle 30
15: StackMap locals:
StackMap stack:
iinc 3 1
16: bipush 10
iload 2
imul
iload 1
bipush 48
isub
iadd
istore 2
17: goto 30
18: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
iconst_0
caload
bipush 45
if_icmpne 19
iconst_1
goto 20
StackMap locals:
StackMap stack: org.jruby.util.ConvertDouble$DoubleConverter
19: iconst_0
StackMap locals: org.jruby.util.ConvertDouble$DoubleConverter int int int int
StackMap stack: org.jruby.util.ConvertDouble$DoubleConverter int
20: iload 4
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.tooLargeExponent:(ZZ)Z
ireturn
21: StackMap locals:
StackMap stack:
iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isWhitespace:(B)Z
ifeq 24
22: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.skipWhitespace:()Z
pop
23: goto 31
24: StackMap locals:
StackMap stack:
iload 1
bipush 95
if_icmpne 27
25: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.verifyNumberAfterUnderscore:()V
26: goto 30
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
28: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.stopParsing:()Z
pop
29: goto 31
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 11
31: StackMap locals:
StackMap stack:
iload 4
ifeq 33
32: iload 2
ineg
istore 2
33: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.adjustExponent:I
iadd
istore 2
34: getstatic org.jruby.util.ConvertDouble$DoubleConverter.MAX_EXPONENT:I
ineg
iload 2
if_icmpgt 38
iload 2
getstatic org.jruby.util.ConvertDouble$DoubleConverter.MAX_EXPONENT:I
if_icmpgt 38
35: aload 0
iload 2
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.addExponentToResult:(I)V
36: aload 0
iconst_1
putfield org.jruby.util.ConvertDouble$DoubleConverter.wroteExponent:Z
37: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ireturn
38: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.chars:[C
iconst_0
caload
bipush 45
if_icmpne 39
iconst_1
goto 40
StackMap locals:
StackMap stack: org.jruby.util.ConvertDouble$DoubleConverter
39: iconst_0
StackMap locals: org.jruby.util.ConvertDouble$DoubleConverter int int int int
StackMap stack: org.jruby.util.ConvertDouble$DoubleConverter int
40: iload 4
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.tooLargeExponent:(ZZ)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 41 1 value B
3 41 2 exponent I
4 41 3 digits I
5 41 4 negative Z
private boolean tooLargeExponent(boolean, boolean);
descriptor: (ZZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 6
1: iload 1
ifeq 4
2: aload 0
ldc -0.0
putfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
3: goto 10
4: StackMap locals:
StackMap stack:
aload 0
dconst_0
putfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
5: goto 10
6: StackMap locals:
StackMap stack:
iload 1
ifeq 9
7: aload 0
ldc -Infinity
putfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
ldc Infinity
putfield org.jruby.util.ConvertDouble$DoubleConverter.result:D
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.verifyOnlyNumbers:()V
11: aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.stopParsing:()Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
0 12 1 negativeFloat Z
0 12 2 negativeExponent Z
MethodParameters:
Name Flags
negativeFloat
negativeExponent
private void verifyOnlyNumbers();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: goto 3
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.next:()B
istore 1
start local 1 2: iload 1
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifne 3
new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
end local 1 3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifeq 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
2 3 1 value B
private void verifyNumberAfterUnderscore();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.isStrict:Z
ifeq 2
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.isEOS:()Z
ifne 1
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.bytes:[B
aload 0
getfield org.jruby.util.ConvertDouble$DoubleConverter.index:I
baload
invokestatic org.jruby.util.ConvertDouble$DoubleConverter.isDigit:(B)Z
ifne 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.util.ConvertDouble$DoubleConverter.strictError:()Z
pop
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/util/ConvertDouble$DoubleConverter;
}
SourceFile: "ConvertDouble.java"
NestHost: org.jruby.util.ConvertDouble
InnerClasses:
public DoubleConverter = org.jruby.util.ConvertDouble$DoubleConverter of org.jruby.util.ConvertDouble
LightweightNumberFormatException = org.jruby.util.ConvertDouble$DoubleConverter$LightweightNumberFormatException of org.jruby.util.ConvertDouble$DoubleConverter