public class org.jruby.ext.bigdecimal.RubyBigDecimal extends org.jruby.RubyNumeric
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.bigdecimal.RubyBigDecimal
super_class: org.jruby.RubyNumeric
{
private static final org.jruby.runtime.ObjectAllocator ALLOCATOR;
descriptor: Lorg/jruby/runtime/ObjectAllocator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final int ROUND_DOWN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_CEILING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_UP;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_HALF_DOWN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_HALF_EVEN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 6
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_HALF_UP;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_FLOOR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_POSITIVE_INFINITE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_POSITIVE_ZERO;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_NEGATIVE_FINITE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_NaN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int BASE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 10000
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int ROUND_MODE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 256
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_POSITIVE_FINITE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_NEGATIVE_INFINITE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -3
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int SIGN_NEGATIVE_ZERO;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_INFINITY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_OVERFLOW;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_NaN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_UNDERFLOW;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_ZERODIVIDE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
public static final int EXCEPTION_ALL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 255
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyConstant()
private static final org.jruby.util.ByteList VERSION;
descriptor: Lorg/jruby/util/ByteList;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final short VP_DOUBLE_FIG;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final short RMPD_COMPONENT_FIGURES;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final short BASE_FIG;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final double SQRT_10;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3.1622776601683795
private static final long NEGATIVE_ZERO_LONG_BITS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean isNaN;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int infinitySign;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int zeroSign;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.math.BigDecimal value;
descriptor: Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
private transient java.math.BigDecimal absStripTrailingZeros;
descriptor: Ljava/math/BigDecimal;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private static final java.math.BigDecimal MAX_FIX;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal MIN_FIX;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern FRACTIONAL_DIGIT_GROUPS;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$org$jruby$runtime$ClassIndex;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
3: new org.jruby.ext.bigdecimal.RubyBigDecimal$1
dup
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal$1.<init>:()V
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
4: ldc "1.3.4"
invokestatic org.jruby.util.ByteList.create:(Ljava/lang/CharSequence;)Lorg/jruby/util/ByteList;
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
5: ldc -0.0
invokestatic java.lang.Double.doubleToLongBits:(D)J
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.NEGATIVE_ZERO_LONG_BITS:J
6: ldc 9223372036854775807
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MAX_FIX:Ljava/math/BigDecimal;
7: ldc -9223372036854775808
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MIN_FIX:Ljava/math/BigDecimal;
8: ldc "(\\+| )?(\\d+)(E|F)?"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.FRACTIONAL_DIGIT_GROUPS:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public static org.jruby.RubyClass createBigDecimal(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ldc "BigDecimal"
aload 0
invokevirtual org.jruby.Ruby.getNumeric:()Lorg/jruby/RubyClass;
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 1
start local 1 1: aload 1
ldc "VERSION"
aload 0
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
2: aload 0
invokevirtual org.jruby.Ruby.getKernel:()Lorg/jruby/RubyModule;
ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal$BigDecimalKernelMethods;
invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
3: aload 1
ldc "vpPrecLimit"
aload 0
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
4: aload 1
ldc "vpExceptionMode"
aload 0
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
5: aload 1
ldc "vpRoundingMode"
aload 0
iconst_4
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
6: aload 1
ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
7: aload 1
ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual org.jruby.RubyClass.defineAnnotatedConstants:(Ljava/lang/Class;)V
8: aload 1
ldc "NAN"
aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual org.jruby.RubyClass.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
9: aload 1
ldc "INFINITY"
aload 0
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual org.jruby.RubyClass.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
10: aload 1
ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
11: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 runtime Lorg/jruby/Ruby;
1 12 1 bigDecimal Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public java.math.BigDecimal getValue();
descriptor: ()Ljava/math/BigDecimal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)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
aload 2
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 klass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
klass
public void <init>(org.jruby.Ruby, java.math.BigDecimal);
descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 2
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 value Ljava/math/BigDecimal;
MethodParameters:
Name Flags
runtime
value
public void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.math.BigDecimal);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 3
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 klass Lorg/jruby/RubyClass;
0 6 3 value Ljava/math/BigDecimal;
MethodParameters:
Name Flags
runtime
klass
value
public void <init>(org.jruby.Ruby, java.math.BigDecimal, int);
descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
iconst_0
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 2 1 runtime Lorg/jruby/Ruby;
0 2 2 value Ljava/math/BigDecimal;
0 2 3 infinitySign I
MethodParameters:
Name Flags
runtime
value
infinitySign
public void <init>(org.jruby.Ruby, java.math.BigDecimal, int, int);
descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 1
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iload 3
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iload 4
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 2
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 value Ljava/math/BigDecimal;
0 6 3 infinitySign I
0 6 4 zeroSign I
MethodParameters:
Name Flags
runtime
value
infinitySign
zeroSign
public void <init>(org.jruby.Ruby, java.math.BigDecimal, boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;Z)V
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
aload 1
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iload 3
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iconst_0
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 2
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 value Ljava/math/BigDecimal;
0 6 3 isNan Z
MethodParameters:
Name Flags
runtime
value
isNan
public void <init>(org.jruby.Ruby, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
aload 2
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 2 1 runtime Lorg/jruby/Ruby;
0 2 2 rbd Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
rbd
public void <init>(org.jruby.Ruby, org.jruby.RubyClass, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 klass Lorg/jruby/RubyClass;
0 6 3 rbd Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
runtime
klass
rbd
void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.math.BigDecimal, int, int, boolean);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;IIZ)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iload 6
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
2: aload 0
iload 5
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
3: aload 0
iload 4
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
4: aload 0
aload 3
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
5: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 klass Lorg/jruby/RubyClass;
0 6 3 value Ljava/math/BigDecimal;
0 6 4 zeroSign I
0 6 5 infinitySign I
0 6 6 isNaN Z
MethodParameters:
Name Flags
runtime
klass
value
zeroSign
infinitySign
isNaN
public org.jruby.runtime.ClassIndex getNativeClassIndex();
descriptor: ()Lorg/jruby/runtime/ClassIndex;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.jruby.runtime.ClassIndex.BIGDECIMAL:Lorg/jruby/runtime/ClassIndex;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public static org.jruby.runtime.builtin.IRubyObject ver(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
getstatic org.jruby.common.IRubyWarnings$ID.DEPRECATED_METHOD:Lorg/jruby/common/IRubyWarnings$ID;
ldc "BigDecimal.ver is deprecated; use BigDecimal::VERSION instead"
invokevirtual org.jruby.common.RubyWarnings.warn:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
public org.jruby.runtime.builtin.IRubyObject _dump(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "0:"
invokestatic org.jruby.RubyString.newUnicodeString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.asString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.append:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject _dump(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "0:"
invokestatic org.jruby.RubyString.newUnicodeString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.asString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.append:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 unused Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
unused
public static org.jruby.ext.bigdecimal.RubyBigDecimal _load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
aload 3
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 2: aload 0
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 context Lorg/jruby/runtime/ThreadContext;
0 3 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 from Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 precisionAndValue Ljava/lang/String;
2 3 4 value Ljava/lang/String;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
from
public static org.jruby.runtime.builtin.IRubyObject double_fig(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
bipush 16
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
public static org.jruby.runtime.builtin.IRubyObject limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.jruby.RubyModule
ldc "vpPrecLimit"
invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
public static org.jruby.runtime.builtin.IRubyObject limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.limit:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 1: aload 2
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 2
aload 3
areturn
2: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 2
instanceof org.jruby.RubyFixnum
ifne 3
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getFixnum:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals:
StackMap stack:
lconst_0
aload 2
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lcmp
ifle 4
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "argument must be positive"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.RubyModule
ldc "vpPrecLimit"
aload 2
invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
5: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 6 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
1 6 3 old Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
arg
public static org.jruby.runtime.builtin.IRubyObject save_limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
checkcast org.jruby.RubyModule
aload 2
ldc "vpPrecLimit"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
block
public static org.jruby.runtime.builtin.IRubyObject save_exception_mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
checkcast org.jruby.RubyModule
aload 2
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
block
public static org.jruby.runtime.builtin.IRubyObject save_rounding_mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
checkcast org.jruby.RubyModule
aload 2
ldc "vpRoundingMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
block
private static org.jruby.runtime.builtin.IRubyObject modeExecute(org.jruby.runtime.ThreadContext, org.jruby.RubyModule, org.jruby.runtime.Block, java.lang.String);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 3
invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 1: aload 2
aload 0
invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 6
2: aload 1
aload 3
aload 4
invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
3: aload 6
areturn
4: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule org.jruby.runtime.Block java.lang.String org.jruby.runtime.builtin.IRubyObject
StackMap stack: java.lang.Throwable
astore 5
5: aload 1
aload 3
aload 4
invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
6: aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 context Lorg/jruby/runtime/ThreadContext;
0 7 1 BigDecimal Lorg/jruby/RubyModule;
0 7 2 block Lorg/jruby/runtime/Block;
0 7 3 intVariableName Ljava/lang/String;
1 7 4 current Lorg/jruby/runtime/builtin/IRubyObject;
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
context final
BigDecimal final
block final
intVariableName final
public static org.jruby.runtime.builtin.IRubyObject mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 1
checkcast org.jruby.RubyModule
astore 4
start local 4 2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
iconst_1
iconst_1
invokestatic org.jruby.runtime.Arity.scanArgs:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)[Lorg/jruby/runtime/builtin/IRubyObject;
astore 2
3: aload 2
iconst_0
aaload
astore 5
start local 5 4: aload 2
iconst_1
aaload
astore 6
start local 6 5: aload 5
instanceof org.jruby.RubyFixnum
ifne 7
6: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "wrong argument type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " (expected Fixnum)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
7: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 5
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lstore 7
start local 7 8: lload 7
ldc 255
land
lconst_0
lcmp
ifeq 32
9: aload 6
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 10
aload 4
ldc "vpExceptionMode"
invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
10: StackMap locals: long
StackMap stack:
aload 6
instanceof org.jruby.RubyBoolean
ifne 11
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "second argument must be true or false"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
11: StackMap locals:
StackMap stack:
aload 4
ldc "vpExceptionMode"
invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
invokevirtual org.jruby.RubyInteger.getLongValue:()J
lstore 9
start local 9 12: aload 6
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
istore 11
start local 11 13: lload 7
lconst_1
land
lconst_0
lcmp
ifeq 17
14: iload 11
ifeq 15
lload 9
lconst_1
lor
goto 16
StackMap locals: long int
StackMap stack:
15: lload 9
ldc -2
land
StackMap locals:
StackMap stack: long
16: lstore 9
17: StackMap locals:
StackMap stack:
lload 7
ldc 2
land
lconst_0
lcmp
ifeq 21
18: iload 11
ifeq 19
lload 9
ldc 2
lor
goto 20
StackMap locals:
StackMap stack:
19: lload 9
ldc -3
land
StackMap locals:
StackMap stack: long
20: lstore 9
21: StackMap locals:
StackMap stack:
lload 7
ldc 4
land
lconst_0
lcmp
ifeq 25
22: iload 11
ifeq 23
lload 9
ldc 4
lor
goto 24
StackMap locals:
StackMap stack:
23: lload 9
ldc -5
land
StackMap locals:
StackMap stack: long
24: lstore 9
25: StackMap locals:
StackMap stack:
lload 7
ldc 16
land
lconst_0
lcmp
ifeq 29
26: iload 11
ifeq 27
lload 9
ldc 16
lor
goto 28
StackMap locals:
StackMap stack:
27: lload 9
ldc -17
land
StackMap locals:
StackMap stack: long
28: lstore 9
29: StackMap locals:
StackMap stack:
aload 3
lload 9
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
astore 12
start local 12 30: aload 4
ldc "vpExceptionMode"
aload 12
invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
31: aload 12
areturn
end local 12 end local 11 end local 9 32: StackMap locals:
StackMap stack:
lload 7
ldc 256
lcmp
ifne 39
33: aload 6
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 35
34: aload 4
ldc "vpRoundingMode"
invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
35: StackMap locals:
StackMap stack:
aload 0
aload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
astore 9
start local 9 36: aload 3
aload 9
invokevirtual java.math.RoundingMode.ordinal:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
astore 10
start local 10 37: aload 4
ldc "vpRoundingMode"
aload 10
invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
38: aload 10
areturn
end local 10 end local 9 39: StackMap locals:
StackMap stack:
aload 3
ldc "first argument for BigDecimal#mode invalid"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 context Lorg/jruby/runtime/ThreadContext;
0 40 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 40 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 40 3 runtime Lorg/jruby/Ruby;
2 40 4 c Lorg/jruby/RubyModule;
4 40 5 mode Lorg/jruby/runtime/builtin/IRubyObject;
5 40 6 value Lorg/jruby/runtime/builtin/IRubyObject;
8 40 7 longMode J
12 32 9 newExceptionMode J
13 32 11 enable Z
30 32 12 fixnumMode Lorg/jruby/RubyFixnum;
36 39 9 javaRoundingMode Ljava/math/RoundingMode;
37 39 10 roundingMode Lorg/jruby/RubyFixnum;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(required = 1, optional = 1, meta = true)
MethodParameters:
Name Flags
context
recv
args
private static long bigDecimalVar(org.jruby.Ruby, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
aload 1
invokevirtual org.jruby.RubyClass.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 variableName Ljava/lang/String;
MethodParameters:
Name Flags
runtime
variableName
private static java.math.RoundingMode getRoundingMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpRoundingMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
l2i
invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static boolean isNaNExceptionMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
ldc 2
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static boolean isInfinityExceptionMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
lconst_1
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static boolean isOverflowExceptionMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
lconst_1
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static boolean isUnderflowExceptionMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
ldc 4
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static boolean isZeroDivideExceptionMode(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "vpExceptionMode"
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
ldc 16
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
private static org.jruby.ext.bigdecimal.RubyBigDecimal cannotBeCoerced(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 4
1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
2: new java.lang.StringBuilder
dup
aload 0
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.errMessageType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " can't be coerced into BigDecimal"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 context Lorg/jruby/runtime/ThreadContext;
0 5 1 value Lorg/jruby/runtime/builtin/IRubyObject;
0 5 2 must Z
MethodParameters:
Name Flags
context
value
must
private static java.lang.String errMessageType(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 2
StackMap locals:
StackMap stack:
1: ldc "nil"
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isImmediate:()Z
ifeq 3
aload 0
aload 1
invokestatic org.jruby.RubyObject.inspect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getBaseName:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/jruby/runtime/ThreadContext;
0 4 1 value Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
value
private static java.math.BigDecimal toBigDecimal(org.jruby.RubyInteger);
descriptor: (Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.jruby.RubyFixnum
ifeq 2
1: aload 0
invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
areturn
2: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
aload 0
invokevirtual org.jruby.RubyInteger.getBigIntegerValue:()Ljava/math/BigInteger;
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value Lorg/jruby/RubyInteger;
MethodParameters:
Name Flags
value final
private static org.jruby.ext.bigdecimal.RubyBigDecimal getVpRubyObjectWithPrecInner(org.jruby.runtime.ThreadContext, org.jruby.RubyRational, java.math.RoundingMode);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/RoundingMode;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
astore 3
start local 3 1: aload 1
invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
astore 4
start local 4 2: aload 3
invokevirtual java.math.BigDecimal.precision:()I
aload 4
invokevirtual java.math.BigDecimal.precision:()I
iadd
istore 5
start local 5 3: iload 5
iconst_4
idiv
istore 6
start local 6 4: new java.math.MathContext
dup
iload 6
iconst_1
iadd
iconst_4
imul
aload 2
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 7
start local 7 5: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
aload 4
aload 7
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 value Lorg/jruby/RubyRational;
0 6 2 mode Ljava/math/RoundingMode;
1 6 3 numerator Ljava/math/BigDecimal;
2 6 4 denominator Ljava/math/BigDecimal;
3 6 5 len I
4 6 6 pow I
5 6 7 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
value
mode
private org.jruby.ext.bigdecimal.RubyBigDecimal getVpValueWithPrec(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.jruby.RubyFloat
ifeq 10
1: aload 2
checkcast org.jruby.RubyFloat
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
dstore 4
start local 4 2: dload 4
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 6
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
dload 4
dconst_0
dcmpg
ifge 4
ldc "-Infinity"
goto 5
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int double
StackMap stack: org.jruby.Ruby
4: ldc "Infinity"
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int double
StackMap stack: org.jruby.Ruby java.lang.String
5: invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
6: StackMap locals:
StackMap stack:
dload 4
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 8
7: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "NaN"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
new java.math.MathContext
dup
bipush 16
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 6
start local 6 9: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.math.BigDecimal
dup
dload 4
aload 6
invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 6 end local 4 10: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyRational
ifeq 12
11: aload 1
aload 2
checkcast org.jruby.RubyRational
invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
aload 2
checkcast org.jruby.RubyRational
invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
bipush 9
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.div2Impl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;Lorg/jruby/RubyNumeric;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
12: StackMap locals:
StackMap stack:
aload 1
aload 2
iload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 13 1 context Lorg/jruby/runtime/ThreadContext;
0 13 2 value Lorg/jruby/runtime/builtin/IRubyObject;
0 13 3 must Z
2 10 4 doubleValue D
9 10 6 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
value
must
private static org.jruby.ext.bigdecimal.RubyBigDecimal getVpValue(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
aload 1
checkcast org.jruby.RubyBasicObject
invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iaload
lookupswitch { // 5
2: 2
3: 3
12: 4
22: 5
40: 1
default: 6
}
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
aload 1
checkcast org.jruby.RubyFixnum
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
aload 1
checkcast org.jruby.RubyBignum
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
aload 1
checkcast org.jruby.RubyFloat
new java.math.MathContext
dup
bipush 15
invokespecial java.math.MathContext.<init>:(I)V
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.jruby.RubyRational
new java.math.MathContext
dup
bipush 15
invokespecial java.math.MathContext.<init>:(I)V
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.cannotBeCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 context Lorg/jruby/runtime/ThreadContext;
0 7 1 value Lorg/jruby/runtime/builtin/IRubyObject;
0 7 2 must Z
MethodParameters:
Name Flags
context
value
must
public static org.jruby.runtime.builtin.IRubyObject induced_from(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
recv
arg
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
aload 1
checkcast org.jruby.RubyClass
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;IIZ)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 arg Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
MethodParameters:
Name Flags
runtime
recv
arg
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyFixnum, java.math.MathContext);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lstore 4
start local 4 1: lload 4
lconst_0
lcmp
ifne 2
aload 0
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals: long
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
aload 1
checkcast org.jruby.RubyClass
new java.math.BigDecimal
dup
lload 4
aload 3
invokespecial java.math.BigDecimal.<init>:(JLjava/math/MathContext;)V
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 arg Lorg/jruby/RubyFixnum;
0 3 3 mathContext Ljava/math/MathContext;
1 3 4 value J
MethodParameters:
Name Flags
runtime
recv
arg
mathContext
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.RubyRational, java.math.MathContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
invokevirtual org.jruby.RubyInteger.isZero:()Z
ifeq 1
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
astore 3
start local 3 2: aload 1
invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
astore 4
start local 4 3: aload 3
aload 4
aload 2
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 5
start local 5 4: goto 7
end local 5 StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyRational java.math.MathContext java.math.BigDecimal java.math.BigDecimal
StackMap stack: java.lang.ArithmeticException
5: pop
6: aload 3
aload 4
getstatic java.math.MathContext.DECIMAL64:Ljava/math/MathContext;
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 5
start local 5 7: StackMap locals: java.math.BigDecimal
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 5
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 context Lorg/jruby/runtime/ThreadContext;
0 8 1 arg Lorg/jruby/RubyRational;
0 8 2 mathContext Ljava/math/MathContext;
2 8 3 num Ljava/math/BigDecimal;
3 8 4 den Ljava/math/BigDecimal;
4 5 5 value Ljava/math/BigDecimal;
7 8 5 value Ljava/math/BigDecimal;
Exception table:
from to target type
3 4 5 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
context
arg
mathContext
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyFloat, java.math.MathContext);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual java.math.MathContext.getPrecision:()I
bipush 16
if_icmple 1
aload 0
ldc "precision too large"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newFloatSpecialCases:(Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 4
start local 4 2: aload 4
ifnull 3
aload 4
areturn
3: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
aload 1
checkcast org.jruby.RubyClass
new java.math.BigDecimal
dup
aload 2
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
aload 3
invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 runtime Lorg/jruby/Ruby;
0 4 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 4 2 arg Lorg/jruby/RubyFloat;
0 4 3 mathContext Ljava/math/MathContext;
2 4 4 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
MethodParameters:
Name Flags
runtime
recv
arg
mathContext
private static org.jruby.ext.bigdecimal.RubyBigDecimal newFloatSpecialCases(org.jruby.Ruby, org.jruby.RubyFloat);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jruby.RubyFloat.isNaN:()Z
ifeq 1
aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.RubyFloat.isInfinite:()Z
ifeq 4
aload 0
aload 1
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
ldc Infinity
dcmpl
ifne 2
iconst_1
goto 3
StackMap locals:
StackMap stack: org.jruby.Ruby
2: iconst_m1
StackMap locals: org.jruby.Ruby org.jruby.RubyFloat
StackMap stack: org.jruby.Ruby int
3: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.RubyFloat.isZero:()Z
ifeq 7
aload 0
aload 1
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
invokestatic java.lang.Double.doubleToLongBits:(D)J
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.NEGATIVE_ZERO_LONG_BITS:J
lcmp
ifne 5
iconst_m1
goto 6
StackMap locals:
StackMap stack: org.jruby.Ruby
5: iconst_1
StackMap locals: org.jruby.Ruby org.jruby.RubyFloat
StackMap stack: org.jruby.Ruby int
6: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 runtime Lorg/jruby/Ruby;
0 8 1 val Lorg/jruby/RubyFloat;
MethodParameters:
Name Flags
runtime
val
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyBignum, java.math.MathContext);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.jruby.RubyBignum.getBigIntegerValue:()Ljava/math/BigInteger;
astore 4
start local 4 1: aload 4
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 2
aload 0
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals: java.math.BigInteger
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
aload 1
checkcast org.jruby.RubyClass
new java.math.BigDecimal
dup
aload 4
aload 3
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;Ljava/math/MathContext;)V
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 arg Lorg/jruby/RubyBignum;
0 3 3 mathContext Ljava/math/MathContext;
1 3 4 value Ljava/math/BigInteger;
MethodParameters:
Name Flags
runtime
recv
arg
mathContext
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.RubyClass, org.jruby.RubyString, java.math.MathContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.jruby.RubyString.decodeString:()Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aload 4
arraylength
iconst_1
isub
istore 6
start local 6 3: iload 6
ifne 9
4: aload 4
iconst_0
caload
tableswitch { // 48 - 57
48: 5
49: 6
50: 6
51: 6
52: 6
53: 6
54: 6
55: 6
56: 6
57: 6
default: 7
}
5: StackMap locals: char[] int int
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 4
iconst_0
caload
bipush 48
isub
i2l
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
areturn
7: StackMap locals:
StackMap stack:
goto 9
StackMap locals:
StackMap stack:
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 6
if_icmpgt 12
aload 4
iload 5
caload
bipush 32
if_icmple 8
10: goto 12
StackMap locals:
StackMap stack:
11: iinc 6 -1
StackMap locals:
StackMap stack:
12: iload 5
iload 6
if_icmpgt 13
aload 4
iload 6
caload
bipush 32
if_icmple 11
13: StackMap locals:
StackMap stack:
iconst_1
istore 7
start local 7 14: iload 5
iload 6
if_icmpgt 15
aload 4
iload 5
caload
goto 16
StackMap locals: int
StackMap stack:
15: bipush 32
StackMap locals:
StackMap stack: int
16: lookupswitch { // 5
43: 23
45: 20
73: 19
78: 18
95: 17
default: 24
}
17: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
18: StackMap locals:
StackMap stack:
ldc "NaN"
aload 4
iload 5
iload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
ifeq 24
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
19: StackMap locals:
StackMap stack:
ldc "Infinity"
aload 4
iload 5
iload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
ifeq 24
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
20: StackMap locals:
StackMap stack:
ldc "-Infinity"
aload 4
iload 5
iload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
ifeq 21
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_m1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
21: StackMap locals:
StackMap stack:
iconst_m1
istore 7
22: goto 24
23: StackMap locals:
StackMap stack:
ldc "+Infinity"
aload 4
iload 5
iload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
ifeq 24
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
24: StackMap locals:
StackMap stack:
iload 5
istore 8
start local 8 25: iconst_0
istore 9
start local 9 26: iconst_0
istore 10
start local 10 27: iconst_m1
istore 11
start local 11 28: iconst_m1
istore 12
start local 12 29: goto 45
30: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyClass org.jruby.RubyString java.math.MathContext char[] int int int int int int int int
StackMap stack:
aload 4
iload 8
iload 9
iadd
caload
lookupswitch { // 18
43: 39
45: 39
46: 38
48: 38
49: 38
50: 38
51: 38
52: 38
53: 38
54: 38
55: 38
56: 38
57: 38
68: 31
69: 40
95: 37
100: 31
101: 40
default: 42
}
31: StackMap locals:
StackMap stack:
iload 10
ifeq 33
32: iload 8
iconst_1
isub
istore 6
goto 45
33: StackMap locals:
StackMap stack:
aload 4
iload 8
bipush 69
castore
iconst_1
istore 10
34: iload 11
iconst_m1
if_icmpne 35
iload 8
istore 11
goto 36
35: StackMap locals:
StackMap stack:
iload 8
iconst_1
isub
istore 6
goto 45
36: StackMap locals:
StackMap stack:
iinc 8 1
goto 45
37: StackMap locals:
StackMap stack:
aload 4
iload 8
aload 4
iload 8
iload 9
iadd
caload
castore
iinc 9 1
goto 45
38: StackMap locals:
StackMap stack:
goto 43
39: StackMap locals:
StackMap stack:
iload 8
istore 12
goto 43
40: StackMap locals:
StackMap stack:
iload 11
iconst_m1
if_icmpne 41
iload 8
istore 11
goto 43
41: StackMap locals:
StackMap stack:
iload 8
iconst_1
isub
istore 6
goto 45
42: StackMap locals:
StackMap stack:
iload 8
iconst_1
isub
istore 6
goto 45
43: StackMap locals:
StackMap stack:
aload 4
iload 8
aload 4
iload 8
iload 9
iadd
caload
castore
44: iinc 8 1
45: StackMap locals:
StackMap stack:
iload 8
iload 9
iadd
iload 6
if_icmple 30
46: iload 6
iload 9
isub
istore 6
47: iload 11
iconst_m1
if_icmpeq 53
48: iload 11
iload 6
if_icmpeq 49
iload 11
iconst_1
iadd
iload 6
if_icmpne 50
aload 4
iload 11
iconst_1
iadd
caload
bipush 45
if_icmpeq 49
aload 4
iload 11
iconst_1
iadd
caload
bipush 43
if_icmpne 50
49: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid value for BigDecimal(): \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
50: StackMap locals:
StackMap stack:
aload 4
iload 11
iconst_1
iadd
iload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isExponentOutOfRange:([CII)Z
ifeq 55
51: aload 4
iload 5
iload 11
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isZeroBase:([CII)Z
ifeq 52
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 7
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
52: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 7
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
53: StackMap locals:
StackMap stack:
iload 12
iload 5
if_icmple 55
54: iload 12
iconst_1
isub
istore 6
55: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
aload 4
iload 5
iload 6
iload 5
isub
iconst_1
iadd
aload 3
invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
astore 13
start local 13 56: goto 61
end local 13 57: StackMap locals:
StackMap stack: java.lang.ArithmeticException
astore 14
start local 14 58: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 14
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.checkOverUnderFlow:(Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 14 59: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
60: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid value for BigDecimal(): \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
start local 13 61: StackMap locals: java.math.BigDecimal
StackMap stack:
aload 13
invokevirtual java.math.BigDecimal.signum:()I
ifne 62
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 7
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
62: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 13
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 context Lorg/jruby/runtime/ThreadContext;
0 63 1 recv Lorg/jruby/RubyClass;
0 63 2 arg Lorg/jruby/RubyString;
0 63 3 mathContext Ljava/math/MathContext;
1 63 4 str [C
2 63 5 s I
3 63 6 e I
14 63 7 sign I
25 63 8 i I
26 63 9 off I
27 63 10 dD Z
28 63 11 exp I
29 63 12 lastSign I
56 57 13 decimal Ljava/math/BigDecimal;
61 63 13 decimal Ljava/math/BigDecimal;
58 59 14 ex Ljava/lang/ArithmeticException;
Exception table:
from to target type
55 56 57 Class java.lang.ArithmeticException
55 56 59 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
context
recv
arg
mathContext
private static boolean contentEquals(java.lang.String, char[], int, int);
descriptor: (Ljava/lang/String;[CII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual java.lang.String.length:()I
istore 4
start local 4 1: iload 4
iload 3
iload 2
isub
iconst_1
iadd
if_icmpne 8
2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: int int
StackMap stack:
aload 0
iload 5
invokevirtual java.lang.String.charAt:(I)C
aload 1
iload 2
iload 5
iadd
caload
if_icmpeq 5
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 4
if_icmplt 4
end local 5 7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 str1 Ljava/lang/String;
0 9 1 str2 [C
0 9 2 s2 I
0 9 3 e2 I
1 9 4 len I
3 7 5 i I
MethodParameters:
Name Flags
str1 final
str2 final
s2 final
e2 final
private static boolean isZeroBase(char[], int, int);
descriptor: ([CII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
istore 3
start local 3 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
iload 3
caload
bipush 48
if_icmpeq 3
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 2
if_icmplt 2
end local 3 5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 str [C
0 6 1 off I
0 6 2 end I
1 5 3 i I
MethodParameters:
Name Flags
str final
off final
end final
private static boolean isExponentOutOfRange(char[], int, int);
descriptor: ([CII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iconst_1
istore 4
start local 4 2: aload 0
iload 1
caload
istore 5
start local 5 3: iload 5
bipush 45
if_icmpne 6
4: iconst_m1
istore 4
5: goto 8
StackMap locals: int int int
StackMap stack:
6: iload 5
bipush 43
if_icmpeq 8
7: bipush 48
iload 5
isub
istore 3
8: StackMap locals:
StackMap stack:
iload 1
iconst_1
iadd
istore 6
start local 6 9: iload 4
iconst_1
if_icmpne 10
ldc -2147483647
goto 11
StackMap locals: int
StackMap stack:
10: ldc -2147483647
StackMap locals:
StackMap stack: int
11: istore 7
start local 7 12: iload 7
bipush 10
idiv
istore 8
start local 8 13: goto 21
14: StackMap locals: int int
StackMap stack:
aload 0
iload 6
iinc 6 1
caload
bipush 48
isub
istore 9
start local 9 15: iload 3
iload 8
if_icmpge 17
16: iconst_1
ireturn
17: StackMap locals: int
StackMap stack:
iload 3
bipush 10
imul
istore 3
18: iload 3
iload 7
iload 9
iadd
if_icmpge 20
19: iconst_1
ireturn
20: StackMap locals:
StackMap stack:
iload 3
iload 9
isub
istore 3
end local 9 21: StackMap locals:
StackMap stack:
iload 6
iload 2
if_icmple 14
22: iconst_0
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 str [C
0 23 1 off I
0 23 2 end I
1 23 3 num I
2 23 4 sign I
3 23 5 ch0 C
9 23 6 i I
12 23 7 max I
13 23 8 multmax I
15 21 9 d I
MethodParameters:
Name Flags
str final
off final
end final
public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 2
start local 2 1: aload 1
arraylength
tableswitch { // 1 - 2
1: 2
2: 3
default: 4
}
2: StackMap locals: org.jruby.runtime.ThreadContext
StackMap stack:
aload 2
aload 0
aload 1
iconst_0
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
3: StackMap locals:
StackMap stack:
aload 2
aload 0
aload 1
iconst_0
aaload
aload 1
iconst_1
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "unexpected argument count: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 5 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 5 2 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
recv
args
public static org.jruby.ext.bigdecimal.RubyBigDecimal new_(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
getstatic org.jruby.common.IRubyWarnings$ID.DEPRECATED_METHOD:Lorg/jruby/common/IRubyWarnings$ID;
ldc "BigDecimal.new is deprecated"
invokevirtual org.jruby.common.RubyWarnings.warning:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
1: aload 0
aload 1
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 2 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.jruby.anno.JRubyMethod(name = {"new"}, meta = true)
MethodParameters:
Name Flags
context
recv
arg
public static org.jruby.ext.bigdecimal.RubyBigDecimal new_(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
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
aload 2
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 mathArg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.jruby.anno.JRubyMethod(name = {"new"}, meta = true)
MethodParameters:
Name Flags
context
recv
arg
mathArg
public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
aload 2
checkcast org.jruby.RubyBasicObject
invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iaload
lookupswitch { // 5
2: 5
3: 6
12: 2
22: 1
40: 7
default: 8
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "can't omit precision for a Rational."
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
checkcast org.jruby.RubyFloat
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newFloatSpecialCases:(Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
areturn
4: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "can't omit precision for a Float."
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 5: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.RubyFixnum
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.RubyBignum
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.jruby.RubyClass
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 context Lorg/jruby/runtime/ThreadContext;
0 9 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 9 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
3 5 3 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
MethodParameters:
Name Flags
context
recv
arg
public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
invokevirtual org.jruby.RubyInteger.getLongValue:()J
l2i
istore 4
start local 4 1: iload 4
ifge 2
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "argument must be positive"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals: int
StackMap stack:
new java.math.MathContext
dup
iload 4
invokespecial java.math.MathContext.<init>:(I)V
astore 5
start local 5 3: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
aload 2
checkcast org.jruby.RubyBasicObject
invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iaload
lookupswitch { // 5
2: 6
3: 7
12: 5
22: 4
40: 8
default: 9
}
4: StackMap locals: java.math.MathContext
StackMap stack:
aload 0
aload 2
checkcast org.jruby.RubyRational
aload 5
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.RubyFloat
aload 5
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.RubyFixnum
aload 5
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.RubyBignum
aload 5
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.jruby.RubyClass
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 context Lorg/jruby/runtime/ThreadContext;
0 10 1 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 10 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
0 10 3 mathArg Lorg/jruby/runtime/builtin/IRubyObject;
1 10 4 digits I
3 10 5 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
recv
arg
mathArg
private static org.jruby.ext.bigdecimal.RubyBigDecimal newZero(org.jruby.Ruby, int);
descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
iconst_0
iload 1
ifge 1
iconst_m1
goto 2
StackMap locals: org.jruby.Ruby int
StackMap stack: new 0 new 0 org.jruby.Ruby java.math.BigDecimal int
1: iconst_1
StackMap locals: org.jruby.Ruby int
StackMap stack: new 0 new 0 org.jruby.Ruby java.math.BigDecimal int int
2: invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 sign I
MethodParameters:
Name Flags
runtime final
sign final
private static org.jruby.ext.bigdecimal.RubyBigDecimal newNaN(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isNaNExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 2
1: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
iconst_1
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime final
private static org.jruby.exceptions.RaiseException newNaNFloatDomainError(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "Computation results to 'NaN'(Not a Number)"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime final
private static org.jruby.ext.bigdecimal.RubyBigDecimal newInfinity(org.jruby.Ruby, int);
descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinityExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 2
1: aload 0
iload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
iload 1
ifge 3
iconst_m1
goto 4
StackMap locals: org.jruby.Ruby int
StackMap stack: new 2 new 2 org.jruby.Ruby java.math.BigDecimal
3: iconst_1
StackMap locals: org.jruby.Ruby int
StackMap stack: new 2 new 2 org.jruby.Ruby java.math.BigDecimal int
4: iconst_0
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 sign I
MethodParameters:
Name Flags
runtime final
sign final
private static org.jruby.exceptions.RaiseException newInfinityFloatDomainError(org.jruby.Ruby, int);
descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.lang.StringBuilder
dup
ldc "Computation results to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
ifge 1
ldc "'-Infinity'"
goto 2
StackMap locals: org.jruby.Ruby int
StackMap stack: org.jruby.Ruby java.lang.StringBuilder
1: ldc "'Infinity'"
StackMap locals: org.jruby.Ruby int
StackMap stack: org.jruby.Ruby java.lang.StringBuilder java.lang.String
2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 sign I
MethodParameters:
Name Flags
runtime final
sign final
private org.jruby.ext.bigdecimal.RubyBigDecimal setResult();
descriptor: ()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private org.jruby.ext.bigdecimal.RubyBigDecimal setResult(int);
descriptor: (I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecLimit:(Lorg/jruby/Ruby;)I
istore 1
1: StackMap locals:
StackMap stack:
iload 1
ifle 5
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
iload 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
dup
istore 2
start local 2 2: isub
if_icmple 5
3: aload 0
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 1
iload 2
isub
iconst_4
invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
4: aload 0
aconst_null
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
end local 2 5: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 prec I
2 5 2 exponent I
MethodParameters:
Name Flags
prec
private java.math.BigDecimal absStripTrailingZeros();
descriptor: ()Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
dup_x1
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
areturn
3: StackMap locals: java.math.BigDecimal
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
1 4 1 absStripTrailingZeros Ljava/math/BigDecimal;
public org.jruby.RubyFixnum hash();
descriptor: ()Lorg/jruby/RubyFixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.hashCode:()I
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
imul
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject initialize_copy(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 1
aload 0
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFrozen:()V
2: aload 1
instanceof org.jruby.ext.bigdecimal.RubyBigDecimal
ifne 4
3: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
ldc "wrong argument class"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
astore 2
start local 2 5: aload 0
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
6: aload 0
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
7: aload 0
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
8: aload 0
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
9: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 10 1 original Lorg/jruby/runtime/builtin/IRubyObject;
5 10 2 orig Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"initialize_copy"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
original
public org.jruby.runtime.builtin.IRubyObject op_mod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 1: aload 3
ifnonnull 2
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_mod:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 3
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 3
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
StackMap locals:
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 5
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 6
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 7
aload 0
areturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 8
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.remainder:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 4
start local 4 9: aload 4
invokevirtual java.math.BigDecimal.signum:()I
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
imul
ifge 10
aload 4
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 4
10: StackMap locals: java.math.BigDecimal
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
0 11 2 other Lorg/jruby/runtime/builtin/IRubyObject;
1 11 3 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
9 11 4 modulo Ljava/math/BigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"%", "modulo"}, required = 1)
MethodParameters:
Name Flags
context
other
public org.jruby.runtime.builtin.IRubyObject op_mod19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject remainder(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.remainderInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"remainder"}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject remainder19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.remainder:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
arg
private org.jruby.runtime.builtin.IRubyObject remainderInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 3
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.remainder:Lorg/jruby/runtime/CallSite;
aload 3
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifne 4
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 4
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 5
StackMap locals:
StackMap stack:
4: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.remainder:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
0 6 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 3 arg Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
val
arg
public org.jruby.runtime.builtin.IRubyObject op_mul(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 1: aload 3
ifnonnull 2
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_times:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.multImpl:(Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"*"}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_mul19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject mult2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecisionInt:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 4
start local 4 1: iload 4
ifne 2
aload 0
aload 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 3: aload 5
ifnonnull 5
4: aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_times:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
5: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 5
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.multImpl:(Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
iload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
0 6 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 6 3 n Lorg/jruby/runtime/builtin/IRubyObject;
1 6 4 mx I
3 6 5 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"mult"}, required = 2)
MethodParameters:
Name Flags
context
b
n
private org.jruby.ext.bigdecimal.RubyBigDecimal multImpl(org.jruby.Ruby, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifne 3
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 13
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifne 5
StackMap locals:
StackMap stack:
4: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 6
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 6
StackMap locals:
StackMap stack:
5: aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 7
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
goto 8
StackMap locals:
StackMap stack:
7: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
StackMap locals:
StackMap stack: int
8: istore 3
start local 3 9: aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 10
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
goto 11
StackMap locals: int
StackMap stack:
10: aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
StackMap locals:
StackMap stack: int
11: istore 4
start local 4 12: aload 1
iload 3
iload 4
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifne 14
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 21
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 15
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
goto 16
StackMap locals:
StackMap stack:
15: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
StackMap locals:
StackMap stack: int
16: istore 3
start local 3 17: aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 18
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
goto 19
StackMap locals: int
StackMap stack:
18: aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
StackMap locals:
StackMap stack: int
19: istore 4
start local 4 20: aload 1
iload 3
iload 4
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 4 end local 3 21: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
iadd
istore 3
start local 3 22: new java.math.MathContext
dup
iload 3
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 4
start local 4 23: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 4
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 5
start local 5 24: goto 27
end local 5 25: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby org.jruby.ext.bigdecimal.RubyBigDecimal int java.math.MathContext
StackMap stack: java.lang.ArithmeticException
astore 6
start local 6 26: aload 1
aload 6
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.checkOverUnderFlow:(Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 6 start local 5 27: StackMap locals: java.math.BigDecimal
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
aload 5
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 28 1 runtime Lorg/jruby/Ruby;
0 28 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
9 13 3 sign1 I
12 13 4 sign2 I
17 21 3 sign1 I
20 21 4 sign2 I
22 28 3 mx I
23 28 4 mathContext Ljava/math/MathContext;
24 25 5 result Ljava/math/BigDecimal;
27 28 5 result Ljava/math/BigDecimal;
26 27 6 ex Ljava/lang/ArithmeticException;
Exception table:
from to target type
23 24 25 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
runtime final
val
private static org.jruby.ext.bigdecimal.RubyBigDecimal checkOverUnderFlow(org.jruby.Ruby, java.lang.ArithmeticException, boolean);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.ArithmeticException.getMessage:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 2
ldc ""
astore 3
2: StackMap locals: java.lang.String
StackMap stack:
aload 3
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 3
3: aload 3
ldc "underflow"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 6
4: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isUnderflowExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 5
aload 0
aload 3
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 3
ldc "overflow"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 9
7: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 8
aload 0
aload 3
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
9: StackMap locals:
StackMap stack:
iload 2
ifeq 10
aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 runtime Lorg/jruby/Ruby;
0 11 1 ex Ljava/lang/ArithmeticException;
0 11 2 nullDefault Z
1 11 3 message Ljava/lang/String;
MethodParameters:
Name Flags
runtime final
ex final
nullDefault
public org.jruby.runtime.builtin.IRubyObject mult219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.mult2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
b
n
private org.jruby.ext.bigdecimal.RubyBigDecimal newPowOfInfinity(org.jruby.runtime.ThreadContext, org.jruby.RubyNumeric);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.jruby.util.Numeric.f_negative_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 6
1: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iflt 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.util.Numeric.f_integer_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Z
ifeq 5
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isEven:(Lorg/jruby/RubyNumeric;)Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack: org.jruby.Ruby
3: iconst_m1
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.RubyNumeric
StackMap stack: org.jruby.Ruby int
4: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_m1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iflt 7
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
7: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.util.Numeric.f_integer_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Z
ifeq 10
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isEven:(Lorg/jruby/RubyNumeric;)Z
ifeq 8
iconst_1
goto 9
StackMap locals:
StackMap stack: org.jruby.Ruby
8: iconst_m1
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.RubyNumeric
StackMap stack: org.jruby.Ruby int
9: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
10: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "a non-integral exponent for a negative base"
invokevirtual org.jruby.Ruby.newMathDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
0 11 2 exp Lorg/jruby/RubyNumeric;
MethodParameters:
Name Flags
context
exp
private static org.jruby.runtime.builtin.IRubyObject vpPrecLimit(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "BigDecimal"
invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
ldc "vpPrecLimit"
invokevirtual org.jruby.RubyClass.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime final
private static int getPrecLimit(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.vpPrecLimit:(Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime final
public org.jruby.runtime.builtin.IRubyObject op_pow(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
arg
public org.jruby.ext.bigdecimal.RubyBigDecimal op_pow(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 2
instanceof org.jruby.RubyNumeric
ifne 3
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "wrong argument type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " (expected scalar Numeric)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 4
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 5
aload 0
aload 1
aload 2
checkcast org.jruby.RubyNumeric
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.newPowOfInfinity:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyInteger
ifne 11
6: aload 2
checkcast org.jruby.RubyNumeric
invokevirtual org.jruby.RubyNumeric.getDoubleValue:()D
invokestatic java.math.BigDecimal.valueOf:(D)Ljava/math/BigDecimal;
astore 7
start local 7 7: aload 7
getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
astore 8
start local 8 8: aload 8
iconst_0
aaload
invokevirtual java.math.BigDecimal.intValueExact:()I
istore 4
start local 4 9: aload 8
iconst_1
aaload
invokevirtual java.math.BigDecimal.doubleValue:()D
dstore 5
end local 8 end local 7 start local 5 10: goto 13
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 2
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 4
start local 4 12: dconst_0
dstore 5
start local 5 13: StackMap locals: int double
StackMap stack:
iload 4
ifge 17
14: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 15
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
15: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.powNegative:(I)Ljava/math/BigDecimal;
astore 7
start local 7 16: goto 18
end local 7 17: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 4
invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
astore 7
start local 7 18: StackMap locals: java.math.BigDecimal
StackMap stack:
dload 5
dconst_0
dcmpl
ifle 21
19: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.doubleValue:()D
dload 5
invokestatic java.lang.Math.pow:(DD)D
dstore 8
start local 8 20: aload 7
dload 8
invokestatic java.math.BigDecimal.valueOf:(D)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 7
end local 8 21: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 3
aload 7
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 22 1 context Lorg/jruby/runtime/ThreadContext;
0 22 2 exp Lorg/jruby/runtime/builtin/IRubyObject;
1 22 3 runtime Lorg/jruby/Ruby;
9 11 4 times I
12 22 4 times I
10 11 5 rem D
13 22 5 rem D
7 10 7 expVal Ljava/math/BigDecimal;
8 10 8 divAndRem [Ljava/math/BigDecimal;
16 17 7 pow Ljava/math/BigDecimal;
18 22 7 pow Ljava/math/BigDecimal;
20 21 8 remPow D
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"**", "power"}, required = 1)
MethodParameters:
Name Flags
context final
exp
public org.jruby.runtime.builtin.IRubyObject op_pow19(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 exp Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
exp
public org.jruby.ext.bigdecimal.RubyBigDecimal op_pow19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 exp Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
exp
private java.math.BigDecimal powNegative(int);
descriptor: (I)Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ineg
iconst_4
iadd
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getAllDigits:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_4
iadd
imul
istore 2
start local 2 1: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 1
new java.math.MathContext
dup
iload 2
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
invokevirtual java.math.BigDecimal.pow:(ILjava/math/MathContext;)Ljava/math/BigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 2 1 times I
1 2 2 precision I
MethodParameters:
Name Flags
times final
public org.jruby.runtime.builtin.IRubyObject op_plus(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.vpPrecLimit:(Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"+"})
MethodParameters:
Name Flags
context
b
public org.jruby.runtime.builtin.IRubyObject op_plus19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_plus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
b
public org.jruby.runtime.builtin.IRubyObject add2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 2
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 digits Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"add"})
MethodParameters:
Name Flags
context
b
digits
public org.jruby.runtime.builtin.IRubyObject add219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.add2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 digits Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
b
digits
private org.jruby.runtime.builtin.IRubyObject addInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
ifnonnull 2
1: aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_plus:Lorg/jruby/runtime/CallSite;
aload 3
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 3: aload 5
ifnull 4
aload 5
areturn
4: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 6
start local 6 5: aload 1
aload 4
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPositiveInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 7
start local 7 6: new java.math.MathContext
dup
iload 7
aload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 8
start local 8 7: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 6
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 8
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
iload 7
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 8 3 b Lorg/jruby/runtime/builtin/IRubyObject;
0 8 4 digits Lorg/jruby/runtime/builtin/IRubyObject;
3 8 5 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
5 8 6 runtime Lorg/jruby/Ruby;
6 8 7 prec I
7 8 8 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
val
b
digits
private static int getPositiveInt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.RubyFixnum
ifeq 5
1: aload 1
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 2
start local 2 2: iload 2
ifge 4
3: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "argument must be positive"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 5: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getFixnum:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
2 5 2 value I
MethodParameters:
Name Flags
context
arg
private org.jruby.ext.bigdecimal.RubyBigDecimal addSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 10
3: aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 7
4: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
if_icmpne 5
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
goto 6
StackMap locals:
StackMap stack: org.jruby.Ruby
5: iconst_1
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
6: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 9
8: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
9: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
10: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
imul
istore 3
start local 3 11: iload 3
ifle 12
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
12: StackMap locals: int
StackMap stack:
iload 3
ifge 13
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
13: StackMap locals:
StackMap stack:
iload 3
ifne 17
14: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iadd
istore 3
15: iload 3
ifeq 17
16: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
17: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 18 1 context Lorg/jruby/runtime/ThreadContext;
0 18 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
11 18 3 sign I
MethodParameters:
Name Flags
context
val
public org.jruby.runtime.builtin.IRubyObject op_uplus();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"+@"})
public org.jruby.runtime.builtin.IRubyObject op_uminus(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ineg
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 3
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
ineg
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
3: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"-@"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject op_minus(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"-"}, required = 1)
MethodParameters:
Name Flags
context
b
public org.jruby.runtime.builtin.IRubyObject op_minus19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_minus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
b
public org.jruby.runtime.builtin.IRubyObject sub2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 2
aload 1
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPositiveInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"sub"}, required = 2)
MethodParameters:
Name Flags
context
b
n
public org.jruby.runtime.builtin.IRubyObject sub219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.sub2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 b Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
b
n
private org.jruby.runtime.builtin.IRubyObject subInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
ifnonnull 1
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_minus:Lorg/jruby/runtime/CallSite;
aload 3
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 2: aload 5
ifnull 3
aload 5
goto 4
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
3: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
iload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
StackMap locals:
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal
4: areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 5 1 context Lorg/jruby/runtime/ThreadContext;
0 5 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 5 3 b Lorg/jruby/runtime/builtin/IRubyObject;
0 5 4 prec I
2 5 5 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
MethodParameters:
Name Flags
context
val
b
prec
private org.jruby.ext.bigdecimal.RubyBigDecimal subSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 6
3: aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 4
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 5
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iconst_m1
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
imul
istore 3
start local 3 7: iload 3
ifle 8
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
8: StackMap locals: int
StackMap stack:
iload 3
ifge 9
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
9: StackMap locals:
StackMap stack:
iload 3
ifne 17
10: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 12
11: aload 0
areturn
12: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 14
13: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iconst_m1
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iadd
istore 3
15: iload 3
ifeq 17
16: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
17: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 18 1 context Lorg/jruby/runtime/ThreadContext;
0 18 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
7 18 3 sign I
MethodParameters:
Name Flags
context
val
public org.jruby.runtime.builtin.IRubyObject op_quo(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 1: aload 3
ifnonnull 2
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_quo:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 3
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 4
StackMap locals:
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 4
start local 4 5: aload 4
ifnull 6
aload 4
areturn
6: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.quoImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 other Lorg/jruby/runtime/builtin/IRubyObject;
1 7 3 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
5 7 4 div Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"/", "quo"})
MethodParameters:
Name Flags
context
other
private org.jruby.ext.bigdecimal.RubyBigDecimal quoImpl(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
istore 3
start local 3 1: aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
istore 4
start local 4 2: iload 3
iload 4
if_icmpge 3
iload 4
istore 3
3: StackMap locals: int int
StackMap stack:
iload 3
iconst_1
iadd
bipush 9
imul
istore 3
4: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecLimit:(Lorg/jruby/Ruby;)I
istore 5
start local 5 5: iload 5
ifle 6
iload 5
iload 3
if_icmpge 6
iload 5
istore 3
6: StackMap locals: int
StackMap stack:
new java.math.MathContext
dup
iload 3
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 6
start local 6 7: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 6
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
iload 5
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 that Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
1 8 3 mx I
2 8 4 mxb I
5 8 5 limit I
7 8 6 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
that
private static java.math.BigDecimal divide(java.math.BigDecimal, java.math.BigDecimal, java.math.MathContext);
descriptor: (Ljava/math/BigDecimal;Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
ifne 1
aload 2
invokevirtual java.math.MathContext.getPrecision:()I
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.math.MathContext.getPrecision:()I
i2l
lconst_1
ladd
aload 1
invokevirtual java.math.BigDecimal.precision:()I
i2l
ladd
aload 0
invokevirtual java.math.BigDecimal.precision:()I
i2l
lsub
lstore 3
start local 3 2: aload 0
invokevirtual java.math.BigDecimal.scale:()I
i2l
aload 1
invokevirtual java.math.BigDecimal.scale:()I
i2l
lsub
lstore 5
start local 5 3: lload 5
lstore 7
start local 7 4: iconst_1
anewarray java.math.BigInteger
dup
iconst_0
aload 0
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
aastore
astore 9
start local 9 5: aload 1
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
astore 10
start local 10 6: lload 3
lconst_0
lcmp
ifle 9
7: aload 9
iconst_0
aload 9
iconst_0
aaload
lload 3
invokestatic org.jruby.ext.bigdecimal.Multiplication.powerOf10:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aastore
8: lload 7
lload 3
ladd
lstore 7
9: StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext long long long java.math.BigInteger[] java.math.BigInteger
StackMap stack:
aload 9
iconst_0
aaload
aload 10
invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
astore 9
10: aload 9
iconst_0
aaload
astore 11
start local 11 11: aload 9
iconst_1
aaload
invokevirtual java.math.BigInteger.signum:()I
ifeq 17
12: aload 9
iconst_1
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.shiftLeftOneBit:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 10
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
istore 12
start local 12 13: aload 11
getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
14: aload 9
iconst_0
aaload
invokevirtual java.math.BigInteger.signum:()I
iconst_5
iload 12
iadd
imul
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
15: astore 11
16: lload 7
lconst_1
ladd
lstore 7
end local 12 17: StackMap locals: java.math.BigInteger
StackMap stack:
new java.math.BigDecimal
dup
aload 11
lload 7
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.safeLongToInt:(J)I
aload 2
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
areturn
end local 11 end local 10 end local 9 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 target Ljava/math/BigDecimal;
0 18 1 divisor Ljava/math/BigDecimal;
0 18 2 mc Ljava/math/MathContext;
2 18 3 trailingZeros J
3 18 5 diffScale J
4 18 7 newScale J
5 18 9 quotAndRem [Ljava/math/BigInteger;
6 18 10 divScaled Ljava/math/BigInteger;
11 18 11 integerQuot Ljava/math/BigInteger;
13 17 12 compRem I
MethodParameters:
Name Flags
target
divisor
mc
private static java.math.BigInteger shiftLeftOneBit(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 i Ljava/math/BigInteger;
MethodParameters:
Name Flags
i
private static int safeLongToInt(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: lload 0
ldc -2147483648
lcmp
iflt 1
lload 0
ldc 2147483647
lcmp
ifle 2
1: StackMap locals:
StackMap stack:
new java.lang.ArithmeticException
dup
new java.lang.StringBuilder
dup
ldc "Out of int range: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
lload 0
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 longValue J
MethodParameters:
Name Flags
longValue
private static org.jruby.ext.bigdecimal.RubyBigDecimal div2Impl(org.jruby.runtime.ThreadContext, org.jruby.RubyNumeric, org.jruby.RubyNumeric, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;Lorg/jruby/RubyNumeric;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 4
start local 4 1: aload 0
aload 2
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 2: aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 3
aload 5
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 4
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
3: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 5
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 6
start local 6 5: aload 6
ifnull 6
aload 6
areturn
6: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
aload 5
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
iadd
iconst_2
iadd
istore 7
start local 7 7: new java.math.MathContext
dup
iload 7
iconst_2
imul
iconst_2
iadd
bipush 9
imul
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 8
start local 8 8: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 5
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 8
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
iload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 context Lorg/jruby/runtime/ThreadContext;
0 9 1 a Lorg/jruby/RubyNumeric;
0 9 2 b Lorg/jruby/RubyNumeric;
0 9 3 ix I
1 9 4 thiz Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
2 9 5 that Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
5 9 6 div Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
7 9 7 mx I
8 9 8 mathContext Ljava/math/MathContext;
MethodParameters:
Name Flags
context
a
b
ix final
public org.jruby.runtime.builtin.IRubyObject op_quo19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_quo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 other Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
other
public org.jruby.runtime.builtin.IRubyObject op_quo20(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_quo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 other Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
other
public org.jruby.runtime.builtin.IRubyObject op_div(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.RubyRational
ifeq 1
aload 0
aload 1
aload 2
checkcast org.jruby.RubyRational
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.idiv:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;)Lorg/jruby/RubyInteger;
areturn
1: StackMap locals:
StackMap stack:
aload 1
aload 2
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 2: aload 3
ifnonnull 3
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.div:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 4
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 5
StackMap locals:
StackMap stack:
4: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 8
6: aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 7
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
7: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 9
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
athrow
9: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 10
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
areturn
10: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 3
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 4
start local 4 11: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toInteger:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 12 1 context Lorg/jruby/runtime/ThreadContext;
0 12 2 other Lorg/jruby/runtime/builtin/IRubyObject;
2 12 3 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
11 12 4 result Ljava/math/BigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"div"})
MethodParameters:
Name Flags
context
other
private org.jruby.RubyInteger idiv(org.jruby.runtime.ThreadContext, org.jruby.RubyRational);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;)Lorg/jruby/RubyInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 3
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.RubyRational.isZero:()Z
ifeq 4
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 2
invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
5: aload 2
invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
6: astore 3
start local 3 7: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toInteger:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 val Lorg/jruby/RubyRational;
7 8 3 result Ljava/math/BigDecimal;
MethodParameters:
Name Flags
context
val
private static org.jruby.RubyInteger toInteger(org.jruby.Ruby, java.math.BigDecimal);
descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MAX_FIX:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ifgt 2
aload 1
getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MIN_FIX:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
iflt 2
1: aload 0
aload 1
invokevirtual java.math.BigDecimal.longValue:()J
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 result Ljava/math/BigDecimal;
MethodParameters:
Name Flags
runtime final
result final
public org.jruby.runtime.builtin.IRubyObject op_div(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 4
start local 4 1: aload 4
ifnonnull 2
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.div:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 3
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 4
StackMap locals:
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 5: aload 5
ifnull 6
aload 5
areturn
6: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 3
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 6
start local 6 7: iload 6
ifne 8
aload 0
aload 1
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.quoImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
8: StackMap locals: int
StackMap stack:
new java.math.MathContext
dup
iload 6
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 7
start local 7 9: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 7
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
iload 6
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 other Lorg/jruby/runtime/builtin/IRubyObject;
0 10 3 digits Lorg/jruby/runtime/builtin/IRubyObject;
1 10 4 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
5 10 5 div Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
7 10 6 scale I
9 10 7 mathContext Ljava/math/MathContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"div"})
MethodParameters:
Name Flags
context
other
digits
private org.jruby.ext.bigdecimal.RubyBigDecimal divSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 3
1: aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 12
5: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 6
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isZeroDivideExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 8
7: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "Divide by zero"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 9
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
goto 10
StackMap locals:
StackMap stack:
9: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
StackMap locals:
StackMap stack: int
10: istore 3
start local 3 11: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 3
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 13
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
aload 2
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
imul
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 14 1 context Lorg/jruby/runtime/ThreadContext;
0 14 2 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
11 12 3 sign1 I
MethodParameters:
Name Flags
context
val
public final org.jruby.runtime.builtin.IRubyObject op_div19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_div:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 r Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
r
public final org.jruby.runtime.builtin.IRubyObject op_div19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
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
aload 2
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_div:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 other Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 digits Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
context
other
digits
private org.jruby.runtime.builtin.IRubyObject cmp(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, char);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
iconst_0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 5
start local 5 1: aload 5
ifnonnull 20
2: ldc "!="
astore 6
start local 6 3: iload 3
lookupswitch { // 7
33: 11
42: 4
60: 14
61: 6
62: 15
71: 12
76: 13
default: 16
}
4: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 5
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_cmp:Lorg/jruby/runtime/CallSite;
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
6: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 7
aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_eql:Lorg/jruby/runtime/CallSite;
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
start local 7 8: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 7
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpeq 9
aload 7
aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
if_acmpeq 9
iconst_1
goto 10
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.Ruby
9: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.Ruby int
10: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 7 11: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 16
aload 1
getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
areturn
12: StackMap locals:
StackMap stack:
ldc ">="
astore 6
goto 16
13: StackMap locals:
StackMap stack:
ldc "<="
astore 6
goto 16
14: StackMap locals:
StackMap stack:
ldc "<"
astore 6
goto 16
15: StackMap locals:
StackMap stack:
ldc ">"
astore 6
16: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 6
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
start local 7 17: aload 7
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 19
18: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "comparison of BigDecimal with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.errMessageType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " failed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
19: StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 7
areturn
end local 7 end local 6 20: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 21
aload 5
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 24
StackMap locals:
StackMap stack:
21: iload 3
bipush 42
if_icmpne 22
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 23
StackMap locals:
StackMap stack:
22: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
23: areturn
24: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifne 25
aload 5
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifeq 26
StackMap locals:
StackMap stack:
25: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 5
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
isub
goto 27
StackMap locals:
StackMap stack:
26: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 5
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
StackMap locals:
StackMap stack: int
27: istore 4
start local 4 28: iload 3
lookupswitch { // 7
33: 33
42: 29
60: 45
61: 30
62: 39
71: 36
76: 42
default: 48
}
29: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
30: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
ifne 31
iconst_1
goto 32
StackMap locals:
StackMap stack: org.jruby.Ruby
31: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
32: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
33: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
ifeq 34
iconst_1
goto 35
StackMap locals:
StackMap stack: org.jruby.Ruby
34: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
35: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
36: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
iflt 37
iconst_1
goto 38
StackMap locals:
StackMap stack: org.jruby.Ruby
37: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
38: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
39: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
ifle 40
iconst_1
goto 41
StackMap locals:
StackMap stack: org.jruby.Ruby
40: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
41: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
42: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
ifgt 43
iconst_1
goto 44
StackMap locals:
StackMap stack: org.jruby.Ruby
43: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
44: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
45: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iload 4
ifge 46
iconst_1
goto 47
StackMap locals:
StackMap stack: org.jruby.Ruby
46: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
47: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
48: StackMap locals:
StackMap stack:
aload 1
49: getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 50 1 context Lorg/jruby/runtime/ThreadContext;
0 50 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
0 50 3 op C
28 50 4 e I
1 50 5 rb Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
3 20 6 id Ljava/lang/String;
8 11 7 res Lorg/jruby/runtime/builtin/IRubyObject;
17 20 7 cmp Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
arg final
op final
private static boolean falsyEqlCheck(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpeq 1
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
if_acmpeq 1
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
if_acmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context final
arg final
public org.jruby.runtime.builtin.IRubyObject op_cmp(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 42
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"<=>"}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject eql_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 61
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"eql?", "=="}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_eqq(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 61
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"==="}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_lt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 60
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"<"}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_le(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 76
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"<="}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_gt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 62
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {">"}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject op_ge(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
bipush 71
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {">="}, required = 1)
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject abs();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject ceil(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
1: aload 2
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 3
start local 3 2: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
iload 3
if_icmpgt 3
aload 0
areturn
3: StackMap locals: int
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 3
getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 context Lorg/jruby/runtime/ThreadContext;
0 4 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
2 4 3 n I
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject ceil(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
1: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iconst_0
getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
astore 2
start local 2 2: aload 2
aload 2
invokevirtual java.math.BigInteger.intValue:()I
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifne 4
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokevirtual java.math.BigInteger.intValue:()I
i2l
invokestatic org.jruby.RubyInteger.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
areturn
4: StackMap locals: java.math.BigInteger
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 5 1 context Lorg/jruby/runtime/ThreadContext;
2 5 2 ceil Ljava/math/BigInteger;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject coerce(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
aload 1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.coerce:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 other Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
other
public org.jruby.RubyArray coerce(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
aload 2
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 0
invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 other Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
other
public double getDoubleValue();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/math/BigDecimal;)D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public long getLongValue();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.longValue:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public int getIntValue();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.intValue:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public java.math.BigInteger getBigIntegerValue();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public java.math.BigDecimal getBigDecimalValue();
descriptor: ()Ljava/math/BigDecimal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyInteger);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyInteger;)Lorg/jruby/RubyNumeric;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyNumeric
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 value Lorg/jruby/RubyInteger;
MethodParameters:
Name Flags
context
value
public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyFloat);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFloat;)Lorg/jruby/RubyNumeric;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyNumeric
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 value Lorg/jruby/RubyFloat;
MethodParameters:
Name Flags
context
value
public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyBignum);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyBignum;)Lorg/jruby/RubyNumeric;
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
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyNumeric
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 value Lorg/jruby/RubyBignum;
MethodParameters:
Name Flags
context
value
public org.jruby.runtime.builtin.IRubyObject divmod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 0
aload 1
aload 2
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 4
start local 4 2: aload 4
ifnonnull 3
aload 0
aload 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
getfield org.jruby.runtime.JavaSites$BigDecimalSites.divmod:Lorg/jruby/runtime/CallSite;
aload 2
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: org.jruby.Ruby org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 4
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 4
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 5
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 5
StackMap locals:
StackMap stack:
4: aload 3
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
5: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 6
aload 3
invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 11
7: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
if_icmpne 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_m1
StackMap locals:
StackMap stack: int
9: istore 5
start local 5 10: aload 3
aload 3
iload 5
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 5 11: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 12
aload 3
aload 3
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 0
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 13
aload 3
aload 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
13: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
astore 5
start local 5 14: aload 5
iconst_0
aaload
astore 6
start local 6 15: aload 5
iconst_1
aaload
astore 7
start local 7 16: aload 7
invokevirtual java.math.BigDecimal.signum:()I
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
imul
ifge 19
17: aload 6
getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 6
18: aload 7
aload 4
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 7
19: StackMap locals: java.math.BigDecimal[] java.math.BigDecimal java.math.BigDecimal
StackMap stack:
aload 3
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 3
aload 6
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 3
aload 7
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 20 1 context Lorg/jruby/runtime/ThreadContext;
0 20 2 other Lorg/jruby/runtime/builtin/IRubyObject;
1 20 3 runtime Lorg/jruby/Ruby;
2 20 4 val Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
10 11 5 sign I
14 20 5 divmod [Ljava/math/BigDecimal;
15 20 6 div Ljava/math/BigDecimal;
16 20 7 mod Ljava/math/BigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"divmod"})
MethodParameters:
Name Flags
context
other
public org.jruby.runtime.builtin.IRubyObject exponent();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject finite_p();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack: org.jruby.Ruby
1: iconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.Ruby int
2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"finite?"})
private org.jruby.ext.bigdecimal.RubyBigDecimal floorNaNInfinityCheck(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
private org.jruby.ext.bigdecimal.RubyBigDecimal floorImpl(org.jruby.runtime.ThreadContext, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
iload 2
if_icmple 1
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 2
getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
goto 2
StackMap locals:
StackMap stack:
1: aload 0
StackMap locals:
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 n I
MethodParameters:
Name Flags
context
n
public org.jruby.runtime.builtin.IRubyObject floor(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorNaNInfinityCheck:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorImpl:(Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
1 3 2 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject floor(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorNaNInfinityCheck:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
areturn
2: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 0
aload 1
aload 2
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorImpl:(Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 res Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject frac(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
ifle 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
if_icmpge 3
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
3: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.fix:()Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject infinite_p(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifne 1
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"infinite?"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject inspect(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aconst_null
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject nan_p(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"nan?"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject nonzero_p(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 1
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"nonzero?"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject nonzero_p();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public org.jruby.runtime.builtin.IRubyObject precs(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
1: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getSignificantDigits:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getAllDigits:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_4
idiv
iconst_1
iadd
iconst_4
imul
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
3: invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject round(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 5
2: aload 2
arraylength
ifne 4
3: aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 9
6: aload 2
arraylength
ifne 8
7: aload 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
9: StackMap locals:
StackMap stack:
aload 3
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
astore 4
start local 4 10: iconst_0
istore 5
start local 5 11: aload 2
arraylength
istore 6
start local 6 12: iload 6
tableswitch { // 1 - 2
1: 15
2: 13
default: 19
}
13: StackMap locals: java.math.RoundingMode int int
StackMap stack:
aload 1
aload 2
iconst_1
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
astore 4
14: aload 2
iconst_0
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 5
15: StackMap locals:
StackMap stack:
aload 3
aload 2
iconst_0
aaload
invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 18
16: aload 2
iconst_0
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 5
17: goto 19
18: StackMap locals:
StackMap stack:
aload 1
aload 2
iconst_0
aaload
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
astore 4
19: StackMap locals:
StackMap stack:
iload 5
ifge 24
20: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 5
invokevirtual java.math.BigDecimal.movePointRight:(I)Ljava/math/BigDecimal;
astore 8
start local 8 21: aload 8
iconst_0
aload 4
invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
astore 9
start local 9 22: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 3
aload 9
iload 5
invokevirtual java.math.BigDecimal.movePointLeft:(I)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
astore 7
end local 9 end local 8 start local 7 23: goto 25
end local 7 24: StackMap locals:
StackMap stack:
new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 5
aload 4
invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
astore 7
start local 7 25: StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack:
aload 2
arraylength
ifne 26
aload 7
aload 3
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
goto 27
StackMap locals:
StackMap stack:
26: aload 7
StackMap locals:
StackMap stack: org.jruby.RubyNumeric
27: areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 28 1 context Lorg/jruby/runtime/ThreadContext;
0 28 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
1 28 3 runtime Lorg/jruby/Ruby;
10 28 4 mode Ljava/math/RoundingMode;
11 28 5 scale I
12 28 6 argc I
23 24 7 bigDecimal Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
25 28 7 bigDecimal Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
21 23 8 normalized Ljava/math/BigDecimal;
22 23 9 rounded Ljava/math/BigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"round"}, optional = 2)
MethodParameters:
Name Flags
context
args
public org.jruby.runtime.builtin.IRubyObject round(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iconst_2
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.round:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 scale Lorg/jruby/runtime/builtin/IRubyObject;
0 1 3 mode Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
scale
mode
private static java.math.RoundingMode javaRoundingModeFromRubyRoundingMode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 1
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 1
invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 2
start local 2 2: aload 2
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpeq 15
3: aload 0
aload 2
checkcast org.jruby.RubyHash
ldc "half"
invokestatic org.jruby.ast.util.ArgsUtil.extractKeywordArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 1
4: aload 1
ifnull 5
aload 1
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 6
StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
5: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
areturn
6: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
astore 3
start local 3 7: aload 3
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
3739: 8
3089570: 9
3125530: 10
default: 14
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
8: aload 4
ldc "up"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 14
StackMap locals:
StackMap stack:
9: aload 4
ldc "down"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 14
StackMap locals:
StackMap stack:
10: aload 4
ldc "even"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 14
11: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
areturn
12: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
areturn
13: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
areturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid rounding mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 15: StackMap locals:
StackMap stack:
aload 1
instanceof org.jruby.RubySymbol
ifeq 38
16: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
astore 3
start local 3 17: aload 3
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 12
-1665645266: 18
-1665609306: 19
-1396345879: 20
3739: 21
3049733: 22
3089570: 23
3125530: 24
97526796: 25
660387005: 26
691003943: 27
1544803905: 28
1852984678: 29
default: 37
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
18: aload 4
ldc "half_down"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
goto 37
StackMap locals:
StackMap stack:
19: aload 4
ldc "half_even"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 37
StackMap locals:
StackMap stack:
20: aload 4
ldc "banker"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 37
StackMap locals:
StackMap stack:
21: aload 4
ldc "up"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 37
StackMap locals:
StackMap stack:
22: aload 4
ldc "ceil"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 35
goto 37
StackMap locals:
StackMap stack:
23: aload 4
ldc "down"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
goto 37
StackMap locals:
StackMap stack:
24: aload 4
ldc "even"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
goto 37
StackMap locals:
StackMap stack:
25: aload 4
ldc "floor"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 36
goto 37
StackMap locals:
StackMap stack:
26: aload 4
ldc "ceiling"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 35
goto 37
StackMap locals:
StackMap stack:
27: aload 4
ldc "half_up"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 37
StackMap locals:
StackMap stack:
28: aload 4
ldc "default"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 32
goto 37
StackMap locals:
StackMap stack:
29: aload 4
ldc "truncate"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
goto 37
30: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
areturn
31: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
areturn
32: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
areturn
33: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
areturn
34: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
areturn
35: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
areturn
36: StackMap locals:
StackMap stack:
getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
areturn
37: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid rounding mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 38: StackMap locals:
StackMap stack:
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
39: areturn
40: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
pop
41: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "invalid rounding mode"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 context Lorg/jruby/runtime/ThreadContext;
0 42 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
2 42 2 opts Lorg/jruby/runtime/builtin/IRubyObject;
7 15 3 roundingMode Ljava/lang/String;
17 38 3 roundingMode Ljava/lang/String;
Exception table:
from to target type
38 39 40 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject sign();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
ldc "SIGN_NaN"
invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifge 2
ldc "SIGN_NEGATIVE_INFINITE"
goto 3
StackMap locals:
StackMap stack: org.jruby.RubyClass
2: ldc "SIGN_POSITIVE_INFINITE"
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.RubyClass java.lang.String
3: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 7
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
ifge 5
ldc "SIGN_NEGATIVE_ZERO"
goto 6
StackMap locals:
StackMap stack: org.jruby.RubyClass
5: ldc "SIGN_POSITIVE_ZERO"
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.RubyClass java.lang.String
6: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
ifge 8
ldc "SIGN_NEGATIVE_FINITE"
goto 9
StackMap locals:
StackMap stack: org.jruby.RubyClass
8: ldc "SIGN_POSITIVE_FINITE"
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
StackMap stack: org.jruby.RubyClass java.lang.String
9: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
private org.jruby.RubyFixnum signValue(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 3
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
public org.jruby.RubyArray split(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
1: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.signValue:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.splitDigits:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
bipush 10
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
4: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.exponent:()Lorg/jruby/runtime/builtin/IRubyObject;
5: invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
private java.lang.String splitDigits();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
ldc "NaN"
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
ldc "Infinity"
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 3
ldc "0"
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getSignificantDigits:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private java.lang.String getSignificantDigits();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private java.lang.String getAllDigits();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private int getExponent();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
astore 1
start local 1 3: aload 1
invokevirtual java.math.BigDecimal.precision:()I
aload 1
invokevirtual java.math.BigDecimal.scale:()I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
3 4 1 val Ljava/math/BigDecimal;
public org.jruby.runtime.builtin.IRubyObject sqrt(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 2
aload 2
ldc "sqrt of NaN"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals: org.jruby.Ruby
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 3
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
iflt 4
StackMap locals:
StackMap stack:
3: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
ifge 5
StackMap locals:
StackMap stack:
4: aload 2
ldc "sqrt of negative value"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 6
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifle 6
aload 2
iconst_1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
6: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecisionInt:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
bipush 16
iadd
bipush 9
iadd
istore 3
start local 3 7: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 2
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
new java.math.MathContext
dup
iload 3
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigSqrt:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 8 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
1 8 2 runtime Lorg/jruby/Ruby;
7 8 3 n I
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
arg
private static int getPrecisionInt(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
istore 2
start local 2 1: iload 2
ifge 2
aload 0
ldc "negative precision"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 runtime Lorg/jruby/Ruby;
0 3 1 v Lorg/jruby/runtime/builtin/IRubyObject;
1 3 2 n I
MethodParameters:
Name Flags
runtime final
v final
public org.jruby.runtime.builtin.IRubyObject to_f();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
iconst_1
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toFloat:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
private org.jruby.RubyFloat toFloat(org.jruby.Ruby, boolean);
descriptor: (Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
ldc NaN
invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 4
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifge 2
ldc -Infinity
goto 3
StackMap locals:
StackMap stack: org.jruby.Ruby
2: ldc Infinity
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby int
StackMap stack: org.jruby.Ruby double
3: invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 7
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
ifge 5
ldc -0.0
goto 6
StackMap locals:
StackMap stack: org.jruby.Ruby
5: dconst_0
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby int
StackMap stack: org.jruby.Ruby double
6: invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
ineg
sipush 308
if_icmpgt 9
8: aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/math/BigDecimal;)D
invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
tableswitch { // -1 - 1
-1: 10
0: 13
1: 16
default: 19
}
10: StackMap locals:
StackMap stack:
iload 2
ifeq 12
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 12
11: aload 1
ldc "BigDecimal to Float conversion"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
ldc -Infinity
invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
13: StackMap locals:
StackMap stack:
iload 2
ifeq 15
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isUnderflowExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 15
14: aload 1
ldc "BigDecimal to Float conversion"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
dconst_0
invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
16: StackMap locals:
StackMap stack:
iload 2
ifeq 18
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
ifeq 18
17: aload 1
ldc "BigDecimal to Float conversion"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
ldc Infinity
invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
areturn
19: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "invalid signum: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for BigDecimal "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 20 1 runtime Lorg/jruby/Ruby;
0 20 2 checkFlow Z
MethodParameters:
Name Flags
runtime final
checkFlow final
public org.jruby.RubyFloat convertToFloat();
descriptor: ()Lorg/jruby/RubyFloat;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toFloat:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public final org.jruby.runtime.builtin.IRubyObject to_int();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public org.jruby.runtime.builtin.IRubyObject to_int(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"to_i", "to_int"})
MethodParameters:
Name Flags
context
final org.jruby.RubyInteger to_int(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
1: aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.longValueExact:()J
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.ArithmeticException
pop
4: aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
invokestatic org.jruby.RubyBignum.bignorm:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 5 1 runtime Lorg/jruby/Ruby;
Exception table:
from to target type
1 2 3 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
runtime
public org.jruby.RubyInteger convertToInteger();
descriptor: ()Lorg/jruby/RubyInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public org.jruby.runtime.builtin.IRubyObject to_r(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
1: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
istore 2
start local 2 2: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
iload 2
invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
astore 3
start local 3 3: getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
iload 2
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
astore 4
start local 4 4: aload 1
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
invokestatic org.jruby.RubyRational.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyInteger;Lorg/jruby/RubyInteger;)Lorg/jruby/RubyNumeric;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 5 1 context Lorg/jruby/runtime/ThreadContext;
2 5 2 scale I
3 5 3 numerator Ljava/math/BigInteger;
4 5 4 denominator Ljava/math/BigInteger;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"to_r"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject to_int19();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
private static java.lang.String removeTrailingZeroes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
istore 1
start local 1 1: goto 3
StackMap locals: int
StackMap stack:
2: iinc 1 -1
StackMap locals:
StackMap stack:
3: iload 1
ifle 4
aload 0
iload 1
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 48
if_icmpeq 2
4: StackMap locals:
StackMap stack:
aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 str Ljava/lang/String;
1 5 1 l I
MethodParameters:
Name Flags
str final
public static boolean formatHasLeadingPlus(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
ifle 1
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 43
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 format Ljava/lang/String;
MethodParameters:
Name Flags
format
public static boolean formatHasLeadingSpace(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
ifle 1
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 32
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 format Ljava/lang/String;
MethodParameters:
Name Flags
format
public static boolean formatHasFloatingPointNotation(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
ifle 1
aload 0
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 70
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 format Ljava/lang/String;
MethodParameters:
Name Flags
format
public static int formatFractionalDigitGroups(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.FRACTIONAL_DIGIT_GROUPS:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1
start local 1 1: aload 1
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 2
aload 1
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
goto 3
StackMap locals: java.util.regex.Matcher
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 format Ljava/lang/String;
1 4 1 match Ljava/util/regex/Matcher;
MethodParameters:
Name Flags
format
private static boolean posSpace(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasLeadingSpace:(Ljava/lang/String;)Z
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arg Ljava/lang/String;
MethodParameters:
Name Flags
arg
private static boolean posSign(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
goto 3
StackMap locals:
StackMap stack:
1: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasLeadingPlus:(Ljava/lang/String;)Z
ifne 2
aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSpace:(Ljava/lang/String;)Z
ifne 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 arg Ljava/lang/String;
MethodParameters:
Name Flags
arg
private static int groups(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatFractionalDigitGroups:(Ljava/lang/String;)I
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arg Ljava/lang/String;
MethodParameters:
Name Flags
arg
public final boolean isZero();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifne 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifne 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
ifne 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/ext/bigdecimal/RubyBigDecimal;
private boolean isNaN();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private boolean isInfinity();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
ifeq 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/ext/bigdecimal/RubyBigDecimal;
private java.lang.String unscaledValue();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
private static java.lang.StringBuilder appendSign(java.lang.StringBuilder, java.lang.String, int);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
iconst_m1
if_icmpne 1
aload 0
bipush 45
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
goto 6
1: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmpne 6
2: aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSign:(Ljava/lang/String;)Z
ifeq 6
3: aload 0
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSpace:(Ljava/lang/String;)Z
ifeq 4
bipush 32
goto 5
StackMap locals:
StackMap stack: java.lang.StringBuilder
4: bipush 43
StackMap locals: java.lang.StringBuilder java.lang.String int
StackMap stack: java.lang.StringBuilder int
5: invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 buff Ljava/lang/StringBuilder;
0 7 1 str Ljava/lang/String;
0 7 2 signum I
MethodParameters:
Name Flags
buff final
str final
signum
private java.lang.CharSequence engineeringValue(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.unscaledValue:()Ljava/lang/String;
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.removeTrailingZeroes:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 2: aload 3
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.appendSign:(Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
3: aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.groups:(Ljava/lang/String;)I
istore 4
start local 4 4: iload 4
ifne 9
5: aload 3
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 6
ldc "0"
goto 7
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int
StackMap stack: java.lang.StringBuilder
6: aload 2
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int
StackMap stack: java.lang.StringBuilder java.lang.String
7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: goto 20
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.String.length:()I
istore 5
start local 5 10: ldc ""
astore 6
start local 6 11: iconst_0
istore 7
start local 7 12: goto 19
13: StackMap locals: int java.lang.String int
StackMap stack:
iload 7
iload 4
iadd
istore 8
start local 8 14: aload 3
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iload 7
iload 8
iload 5
if_icmple 15
iload 5
goto 16
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int int java.lang.String int int
StackMap stack: java.lang.StringBuilder java.lang.String int
15: iload 8
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int int java.lang.String int int
StackMap stack: java.lang.StringBuilder java.lang.String int int
16: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: ldc " "
astore 6
end local 8 18: iload 7
iload 4
iadd
istore 7
StackMap locals:
StackMap stack:
19: iload 7
iload 5
if_icmplt 13
end local 7 end local 6 end local 5 20: StackMap locals:
StackMap stack:
aload 3
bipush 101
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
21: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 22 1 arg Ljava/lang/String;
1 22 2 s Ljava/lang/String;
2 22 3 build Ljava/lang/StringBuilder;
4 22 4 groups I
10 20 5 len I
11 20 6 sep Ljava/lang/String;
12 20 7 index I
14 18 8 next I
MethodParameters:
Name Flags
arg final
private java.lang.CharSequence floatingPointValue(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toPlainString:()Ljava/lang/String;
bipush 46
invokestatic org.jruby.util.StringSupport.split:(Ljava/lang/String;C)Ljava/util/List;
astore 2
start local 2 1: aload 2
invokeinterface java.util.List.size:()I
ifle 2
aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
goto 3
StackMap locals: java.util.List
StackMap stack:
2: ldc "0"
StackMap locals:
StackMap stack: java.lang.String
3: astore 3
start local 3 4: aload 2
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 5
aload 2
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
goto 6
StackMap locals: java.lang.String
StackMap stack:
5: ldc "0"
StackMap locals:
StackMap stack: java.lang.String
6: astore 4
start local 4 7: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 8: aload 5
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.signum:()I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.appendSign:(Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
pop
9: aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.groups:(Ljava/lang/String;)I
istore 6
start local 6 10: iload 6
ifne 14
11: aload 5
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 4
ifnull 35
aload 5
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 35
14: StackMap locals: java.lang.String java.lang.StringBuilder int
StackMap stack:
iconst_0
istore 7
start local 7 15: aload 3
invokevirtual java.lang.String.length:()I
istore 8
start local 8 16: ldc ""
astore 9
start local 9 17: goto 23
18: StackMap locals: int int java.lang.String
StackMap stack:
iload 7
iload 6
iadd
istore 10
start local 10 19: iload 10
iload 8
if_icmple 20
iload 8
istore 10
20: StackMap locals: int
StackMap stack:
aload 5
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
iload 7
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: ldc " "
astore 9
22: iload 7
iload 6
iadd
istore 7
end local 10 23: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmplt 18
24: aload 4
ifnull 35
25: aload 5
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
26: iconst_0
istore 7
aload 4
invokevirtual java.lang.String.length:()I
istore 8
27: ldc ""
astore 9
28: goto 34
29: StackMap locals:
StackMap stack:
iload 7
iload 6
iadd
istore 10
start local 10 30: iload 10
iload 8
if_icmple 31
iload 8
istore 10
31: StackMap locals: int
StackMap stack:
aload 5
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
iload 7
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: ldc " "
astore 9
33: iload 7
iload 6
iadd
istore 7
end local 10 34: StackMap locals:
StackMap stack:
iload 7
iload 8
if_icmplt 29
end local 9 end local 8 end local 7 35: StackMap locals:
StackMap stack:
aload 5
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 36 1 arg Ljava/lang/String;
1 36 2 values Ljava/util/List<Ljava/lang/String;>;
4 36 3 whole Ljava/lang/String;
7 36 4 after Ljava/lang/String;
8 36 5 build Ljava/lang/StringBuilder;
10 36 6 groups I
15 35 7 index I
16 35 8 len I
17 35 9 sep Ljava/lang/String;
19 23 10 next I
30 34 10 next I
MethodParameters:
Name Flags
arg final
public org.jruby.runtime.builtin.IRubyObject to_s();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aconst_null
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public org.jruby.RubyString to_s(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aconst_null
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.RubyString to_s(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 1
aconst_null
goto 2
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
1: aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
2: invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
arg
private org.jruby.RubyString toStringImpl(org.jruby.Ruby, java.lang.String);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
ldc "NaN"
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 5
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
ifge 3
ldc "-0.0"
goto 4
StackMap locals:
StackMap stack: org.jruby.Ruby
3: ldc "0.0"
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
StackMap stack: org.jruby.Ruby java.lang.String
4: invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
5: StackMap locals:
StackMap stack:
aload 2
ifnull 6
aload 2
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasFloatingPointNotation:(Ljava/lang/String;)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: istore 3
start local 3 8: aload 1
iload 3
ifeq 9
aload 0
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.engineeringValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
goto 10
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String int
StackMap stack: org.jruby.Ruby
9: aload 0
aload 2
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floatingPointValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String int
StackMap stack: org.jruby.Ruby java.lang.CharSequence
10: invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;)Lorg/jruby/RubyString;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 11 1 runtime Lorg/jruby/Ruby;
0 11 2 arg Ljava/lang/String;
8 11 3 asEngineering Z
MethodParameters:
Name Flags
runtime final
arg
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
ldc "NaN"
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
ifeq 5
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
ifge 3
ldc "-0.0"
goto 4
StackMap locals:
StackMap stack:
3: ldc "0.0"
StackMap locals:
StackMap stack: java.lang.String
4: areturn
5: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.engineeringValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
public org.jruby.runtime.builtin.IRubyObject to_s(org.jruby.runtime.builtin.IRubyObject[]);
descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 1
arraylength
ifne 1
aconst_null
goto 3
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
1: aload 1
iconst_0
aaload
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 2
aconst_null
goto 3
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
2: aload 1
iconst_0
aaload
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
3: invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 4 1 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
args
public org.jruby.runtime.builtin.IRubyObject fix();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
private org.jruby.ext.bigdecimal.RubyBigDecimal truncateInternal(org.jruby.Ruby, int);
descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 1
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.precision:()I
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.scale:()I
isub
iload 2
iadd
istore 3
start local 3 3: iload 3
ifle 5
4: new org.jruby.ext.bigdecimal.RubyBigDecimal
dup
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
new java.math.MathContext
dup
iload 3
getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
areturn
5: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 arg I
3 6 3 precision I
MethodParameters:
Name Flags
runtime final
arg
public org.jruby.runtime.builtin.IRubyObject truncate(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
iconst_0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject truncate(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
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
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
arg
public org.jruby.runtime.builtin.IRubyObject zero_p(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"zero?"})
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject zero_p();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public <T> T toJava(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljava/math/BigDecimal;
if_acmpeq 1
aload 1
ldc Ljava/lang/Number;
if_acmpne 2
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial org.jruby.RubyNumeric.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
0 3 1 target Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
target
public static java.math.BigDecimal bigSqrt(java.math.BigDecimal, java.math.MathContext);
descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=21, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.math.BigDecimal.signum:()I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpne 2
new java.lang.ArithmeticException
dup
new java.lang.StringBuilder
dup
ldc "Square root of a negative number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ifne 3
aload 0
aload 1
invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.math.MathContext.getPrecision:()I
istore 3
start local 3 4: iload 3
ifne 5
new java.lang.IllegalArgumentException
dup
ldc "Most roots won't have infinite precision = 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int
StackMap stack:
bipush 62
istore 4
start local 4 6: bipush 16
istore 5
start local 5 7: new java.math.MathContext
dup
bipush 18
getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 6
start local 6 8: aload 0
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
astore 7
start local 7 9: aload 7
invokevirtual java.math.BigInteger.bitLength:()I
istore 8
start local 8 10: iconst_0
iload 8
iload 4
isub
iload 8
iconst_2
irem
ifne 11
iconst_0
goto 12
StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int
StackMap stack: int int
11: iconst_1
StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int
StackMap stack: int int int
12: iadd
invokestatic java.lang.Math.max:(II)I
istore 9
start local 9 13: aload 7
iload 9
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 7
14: aload 7
invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/lang/Number;)D
invokestatic java.lang.Math.sqrt:(D)D
dstore 10
start local 10 15: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
iload 9
iconst_2
idiv
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;)V
astore 12
start local 12 16: aload 0
invokevirtual java.math.BigDecimal.scale:()I
istore 13
start local 13 17: iload 13
iconst_2
irem
iconst_1
if_icmpne 18
dload 10
ldc 3.1622776601683795
dmul
dstore 10
18: StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int
StackMap stack:
iload 13
i2d
ldc 2.0
ddiv
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 13
19: new java.math.BigDecimal
dup
dload 10
aload 6
invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
astore 14
start local 14 20: aload 14
aload 12
aload 6
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 14
21: iload 13
ifeq 22
aload 14
iload 13
invokevirtual java.math.BigDecimal.movePointLeft:(I)Ljava/math/BigDecimal;
astore 14
22: StackMap locals: java.math.BigDecimal
StackMap stack:
iload 3
iload 5
if_icmpge 24
23: aload 14
aload 1
invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
areturn
24: StackMap locals:
StackMap stack:
ldc 2
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
astore 15
start local 15 25: getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
aload 15
aload 14
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
aload 6
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 16
start local 16 26: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 17
start local 17 27: getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
ifne 28
iload 5
iconst_3
if_icmpgt 28
new java.lang.AssertionError
dup
ldc "Never ending loop!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
28: StackMap locals: java.math.BigDecimal java.math.BigDecimal java.util.ArrayList
StackMap stack:
iload 3
iconst_1
iadd
istore 18
start local 18 29: goto 34
30: StackMap locals: int
StackMap stack:
aload 17
iload 18
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
31: iload 18
iconst_2
idiv
iload 18
bipush 100
if_icmple 32
iconst_1
goto 33
StackMap locals:
StackMap stack: int
32: iconst_2
StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
StackMap stack: int int
33: iadd
istore 18
StackMap locals:
StackMap stack:
34: iload 18
iload 5
if_icmpgt 30
end local 18 35: aload 17
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 18
start local 18 36: goto 49
37: StackMap locals:
StackMap stack:
new java.math.MathContext
dup
aload 17
iload 18
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iload 18
iconst_2
irem
iconst_1
if_icmpne 38
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
goto 39
StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
StackMap stack: new 37 new 37 int
38: getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
StackMap stack: new 37 new 37 int java.math.RoundingMode
39: invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
astore 6
40: aload 0
aload 14
aload 14
aload 6
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
aload 6
invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 19
start local 19 41: iload 18
ifeq 44
42: aload 14
aload 19
aload 16
aload 6
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 14
43: goto 46
44: StackMap locals: java.math.BigDecimal
StackMap stack:
aload 14
aload 19
aload 16
aload 1
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
aload 1
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
astore 14
45: goto 50
46: StackMap locals:
StackMap stack:
getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
aload 15
aload 14
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
aload 16
aload 6
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 20
start local 20 47: aload 16
aload 20
aload 16
aload 6
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 16
end local 20 end local 19 48: iinc 18 -1
StackMap locals:
StackMap stack:
49: iload 18
iconst_m1
if_icmpgt 37
end local 18 50: StackMap locals:
StackMap stack:
aload 14
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 squarD Ljava/math/BigDecimal;
0 51 1 rootMC Ljava/math/MathContext;
1 51 2 sign I
4 51 3 prec I
6 51 4 BITS I
7 51 5 nInit I
8 51 6 nMC Ljava/math/MathContext;
9 51 7 bi Ljava/math/BigInteger;
10 51 8 biLen I
13 51 9 shift I
15 51 10 root D
16 51 12 halfBack Ljava/math/BigDecimal;
17 51 13 scale I
20 51 14 x Ljava/math/BigDecimal;
25 51 15 TWO Ljava/math/BigDecimal;
26 51 16 v Ljava/math/BigDecimal;
27 51 17 nPrecs Ljava/util/ArrayList<Ljava/lang/Integer;>;
29 35 18 m I
36 50 18 i I
41 48 19 e Ljava/math/BigDecimal;
47 48 20 g Ljava/math/BigDecimal;
MethodParameters:
Name Flags
squarD
rootMC
private void checkFloatDomain();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
ifeq 1
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
ldc "NaN"
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
ifeq 2
aload 0
invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
static java.lang.String infinityString(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_m1
if_icmpne 1
ldc "-Infinity"
goto 2
StackMap locals:
StackMap stack:
1: ldc "Infinity"
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 infinitySign I
MethodParameters:
Name Flags
infinitySign final
private static boolean isEven(org.jruby.RubyNumeric);
descriptor: (Lorg/jruby/RubyNumeric;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.jruby.RubyFixnum
ifeq 2
aload 0
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lconst_1
land
lconst_0
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.jruby.RubyBignum
ifeq 5
3: aload 0
checkcast org.jruby.RubyBignum
invokevirtual org.jruby.RubyBignum.getBigIntegerValue:()Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 4
iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 x Lorg/jruby/RubyNumeric;
MethodParameters:
Name Flags
x final
private static org.jruby.runtime.JavaSites$BigDecimalSites sites(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.runtime.ThreadContext.sites:Lorg/jruby/runtime/JavaSites;
getfield org.jruby.runtime.JavaSites.BigDecimal:Lorg/jruby/runtime/JavaSites$BigDecimalSites;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
static int[] $SWITCH_TABLE$org$jruby$runtime$ClassIndex();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.runtime.ClassIndex.values:()[Lorg/jruby/runtime/ClassIndex;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.runtime.ClassIndex.ARRAY:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.runtime.ClassIndex.BASICOBJECT:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 39
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.runtime.ClassIndex.BIGDECIMAL:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 40
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.jruby.runtime.ClassIndex.BIGNUM:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.jruby.runtime.ClassIndex.BINDING:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 33
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.jruby.runtime.ClassIndex.CLASS:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 14
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.jruby.runtime.ClassIndex.COMPLEX:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 21
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic org.jruby.runtime.ClassIndex.CONTINUATION:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 38
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic org.jruby.runtime.ClassIndex.CONVERTER:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 24
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic org.jruby.runtime.ClassIndex.DIR:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 36
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic org.jruby.runtime.ClassIndex.ENCODING:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 23
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic org.jruby.runtime.ClassIndex.EXCEPTION:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 31
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic org.jruby.runtime.ClassIndex.FALSE:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 8
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic org.jruby.runtime.ClassIndex.FILE:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 27
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic org.jruby.runtime.ClassIndex.FIXNUM:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iconst_2
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic org.jruby.runtime.ClassIndex.FLOAT:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 12
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
getstatic org.jruby.runtime.ClassIndex.GENERATOR:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 25
iastore
51: goto 53
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
52: pop
StackMap locals:
StackMap stack:
53: aload 0
getstatic org.jruby.runtime.ClassIndex.HASH:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 11
iastore
54: goto 56
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
55: pop
StackMap locals:
StackMap stack:
56: aload 0
getstatic org.jruby.runtime.ClassIndex.INTEGER:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 17
iastore
57: goto 59
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
58: pop
StackMap locals:
StackMap stack:
59: aload 0
getstatic org.jruby.runtime.ClassIndex.IO:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 32
iastore
60: goto 62
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
61: pop
StackMap locals:
StackMap stack:
62: aload 0
getstatic org.jruby.runtime.ClassIndex.MATCHDATA:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 28
iastore
63: goto 65
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
64: pop
StackMap locals:
StackMap stack:
65: aload 0
getstatic org.jruby.runtime.ClassIndex.MAX_CLASSES:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 41
iastore
66: goto 68
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
67: pop
StackMap locals:
StackMap stack:
68: aload 0
getstatic org.jruby.runtime.ClassIndex.METHOD:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 35
iastore
69: goto 71
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
70: pop
StackMap locals:
StackMap stack:
71: aload 0
getstatic org.jruby.runtime.ClassIndex.MODULE:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 13
iastore
72: goto 74
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
73: pop
StackMap locals:
StackMap stack:
74: aload 0
getstatic org.jruby.runtime.ClassIndex.NIL:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 6
iastore
75: goto 77
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
76: pop
StackMap locals:
StackMap stack:
77: aload 0
getstatic org.jruby.runtime.ClassIndex.NO_INDEX:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iconst_1
iastore
78: goto 80
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
79: pop
StackMap locals:
StackMap stack:
80: aload 0
getstatic org.jruby.runtime.ClassIndex.NUMERIC:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 18
iastore
81: goto 83
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
82: pop
StackMap locals:
StackMap stack:
83: aload 0
getstatic org.jruby.runtime.ClassIndex.OBJECT:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 15
iastore
84: goto 86
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
85: pop
StackMap locals:
StackMap stack:
86: aload 0
getstatic org.jruby.runtime.ClassIndex.PROC:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 34
iastore
87: goto 89
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
88: pop
StackMap locals:
StackMap stack:
89: aload 0
getstatic org.jruby.runtime.ClassIndex.RANGE:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 19
iastore
90: goto 92
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
91: pop
StackMap locals:
StackMap stack:
92: aload 0
getstatic org.jruby.runtime.ClassIndex.RATIONAL:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 22
iastore
93: goto 95
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
94: pop
StackMap locals:
StackMap stack:
95: aload 0
getstatic org.jruby.runtime.ClassIndex.REGEXP:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 10
iastore
96: goto 98
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
97: pop
StackMap locals:
StackMap stack:
98: aload 0
getstatic org.jruby.runtime.ClassIndex.STRING:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
iconst_5
iastore
99: goto 101
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
100: pop
StackMap locals:
StackMap stack:
101: aload 0
getstatic org.jruby.runtime.ClassIndex.STRUCT:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 16
iastore
102: goto 104
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
103: pop
StackMap locals:
StackMap stack:
104: aload 0
getstatic org.jruby.runtime.ClassIndex.SYMBOL:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 9
iastore
105: goto 107
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
106: pop
StackMap locals:
StackMap stack:
107: aload 0
getstatic org.jruby.runtime.ClassIndex.THREAD:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 30
iastore
108: goto 110
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
109: pop
StackMap locals:
StackMap stack:
110: aload 0
getstatic org.jruby.runtime.ClassIndex.THREADGROUP:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 29
iastore
111: goto 113
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
112: pop
StackMap locals:
StackMap stack:
113: aload 0
getstatic org.jruby.runtime.ClassIndex.TIME:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 20
iastore
114: goto 116
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
115: pop
StackMap locals:
StackMap stack:
116: aload 0
getstatic org.jruby.runtime.ClassIndex.TRUE:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 7
iastore
117: goto 119
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
118: pop
StackMap locals:
StackMap stack:
119: aload 0
getstatic org.jruby.runtime.ClassIndex.UNBOUNDMETHOD:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 37
iastore
120: goto 122
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
121: pop
StackMap locals:
StackMap stack:
122: aload 0
getstatic org.jruby.runtime.ClassIndex.YIELDER:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
bipush 26
iastore
123: goto 125
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
124: pop
StackMap locals:
StackMap stack:
125: aload 0
dup
putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
47 48 49 Class java.lang.NoSuchFieldError
50 51 52 Class java.lang.NoSuchFieldError
53 54 55 Class java.lang.NoSuchFieldError
56 57 58 Class java.lang.NoSuchFieldError
59 60 61 Class java.lang.NoSuchFieldError
62 63 64 Class java.lang.NoSuchFieldError
65 66 67 Class java.lang.NoSuchFieldError
68 69 70 Class java.lang.NoSuchFieldError
71 72 73 Class java.lang.NoSuchFieldError
74 75 76 Class java.lang.NoSuchFieldError
77 78 79 Class java.lang.NoSuchFieldError
80 81 82 Class java.lang.NoSuchFieldError
83 84 85 Class java.lang.NoSuchFieldError
86 87 88 Class java.lang.NoSuchFieldError
89 90 91 Class java.lang.NoSuchFieldError
92 93 94 Class java.lang.NoSuchFieldError
95 96 97 Class java.lang.NoSuchFieldError
98 99 100 Class java.lang.NoSuchFieldError
101 102 103 Class java.lang.NoSuchFieldError
104 105 106 Class java.lang.NoSuchFieldError
107 108 109 Class java.lang.NoSuchFieldError
110 111 112 Class java.lang.NoSuchFieldError
113 114 115 Class java.lang.NoSuchFieldError
116 117 118 Class java.lang.NoSuchFieldError
119 120 121 Class java.lang.NoSuchFieldError
122 123 124 Class java.lang.NoSuchFieldError
}
SourceFile: "RubyBigDecimal.java"
NestMembers:
org.jruby.ext.bigdecimal.RubyBigDecimal$1 org.jruby.ext.bigdecimal.RubyBigDecimal$BigDecimalKernelMethods
InnerClasses:
public final ID = org.jruby.common.IRubyWarnings$ID of org.jruby.common.IRubyWarnings
org.jruby.ext.bigdecimal.RubyBigDecimal$1
public BigDecimalKernelMethods = org.jruby.ext.bigdecimal.RubyBigDecimal$BigDecimalKernelMethods of org.jruby.ext.bigdecimal.RubyBigDecimal
public BigDecimalSites = org.jruby.runtime.JavaSites$BigDecimalSites of org.jruby.runtime.JavaSites