Agora com o jasmin para a geracao de classes
authorHumberto Silva Naves <hnaves@compaq.(none)>
Mon, 21 Jul 2008 18:22:03 +0000 (21 15:22 -0300)
committerHumberto Silva Naves <hnaves@compaq.(none)>
Mon, 21 Jul 2008 18:22:03 +0000 (21 15:22 -0300)
build.xml [new file with mode: 0644]
lib/jasmin-2.3.jar [new file with mode: 0644]
src/main/java/br/org/javadecompiler/disassembler/Main.java [new file with mode: 0644]
src/test/resources/classes/float.txt [deleted file]
src/test/resources/jasmin/DoubleConstant.j [moved from src/test/resources/classes/DoubleConstant.j with 100% similarity]

diff --git a/build.xml b/build.xml
new file mode 100644 (file)
index 0000000..558b39d
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,13 @@
+<project name="JavaDecompiler" default="build" basedir=".">
+       <property name="root.dir" value="./" />
+       <target name="build">
+               <java classname="jasmin.Main">
+                       <arg value="-d" />
+                       <arg value="${root.dir}/src/test/resources/classes" />
+                       <arg value="${root.dir}/src/test/resources/jasmin/DoubleConstant.j" />
+                       <classpath>
+                               <pathelement location="${root.dir}/lib/jasmin-2.3.jar" />
+                       </classpath>
+               </java>
+       </target>
+</project>
\ No newline at end of file
diff --git a/lib/jasmin-2.3.jar b/lib/jasmin-2.3.jar
new file mode 100644 (file)
index 0000000..a8eb490
Binary files /dev/null and b/lib/jasmin-2.3.jar differ
diff --git a/src/main/java/br/org/javadecompiler/disassembler/Main.java b/src/main/java/br/org/javadecompiler/disassembler/Main.java
new file mode 100644 (file)
index 0000000..3a1d371
--- /dev/null
@@ -0,0 +1,7 @@
+package br.org.javadecompiler.disassembler;
+
+public final class Main {
+       public static void main(String[] args) {
+               
+       }
+}
diff --git a/src/test/resources/classes/float.txt b/src/test/resources/classes/float.txt
deleted file mode 100644 (file)
index e26fcd5..0000000
+++ /dev/null
@@ -1,813 +0,0 @@
-Compiled from "Float.java"
-public final class java.lang.Float extends java.lang.Number implements java.lang.Comparable
-  SourceFile: "Float.java"
-  Signature: length = 0x2
-   00 70 
-  minor version: 0
-  major version: 49
-  Constant pool:
-const #1 = int 8388607;
-const #2 = int 2139095040;
-const #3 = int 2143289344;
-const #4 = float       -Infinityf;
-const #5 = float       1.17549435E-38f;
-const #6 = float       Infinityf;
-const #7 = String      #59;    //  float
-const #8 = String      #78;    //  p-1022$
-const #9 = String      #79;    //  p-126
-const #10 = Asciz      ()B;
-const #11 = Asciz      ()D;
-const #12 = Asciz      ()F;
-const #13 = Asciz      ()I;
-const #14 = Asciz      ()J;
-const #15 = Asciz      ()Ljava/lang/String;;
-const #16 = Asciz      ()S;
-const #17 = Asciz      ()V;
-const #18 = Asciz      ()Z;
-const #19 = Asciz      (D)Ljava/lang/String;;
-const #20 = Asciz      (D)V;
-const #21 = Asciz      (DI)D;
-const #22 = Asciz      (F)F;
-const #23 = Asciz      (F)I;
-const #24 = Asciz      (F)V;
-const #25 = Asciz      (F)Z;
-const #26 = Asciz      (FF)I;
-const #27 = Asciz      (I)F;
-const #28 = Asciz      (Ljava/lang/Object;)Z;
-const #29 = Asciz      (Ljava/lang/String;)Ljava/lang/Class;;
-const #30 = Asciz      (Ljava/lang/String;)V;
-const #31 = Asciz      <clinit>;
-const #32 = Asciz      <init>;
-const #33 = Asciz      Code;
-const #34 = Asciz      ConstantValue;
-const #35 = Asciz      Exceptions;
-const #36 = Asciz      F;
-const #37 = Asciz      I;
-const #38 = Asciz      J;
-const #39 = Asciz      LineNumberTable;
-const #40 = Asciz      Ljava/lang/Class;;
-const #41 = Asciz      MAX_EXPONENT;
-const #42 = Asciz      MAX_VALUE;
-const #43 = Asciz      MIN_EXPONENT;
-const #44 = Asciz      MIN_NORMAL;
-const #45 = Asciz      MIN_VALUE;
-const #46 = Asciz      NEGATIVE_INFINITY;
-const #47 = Asciz      NaN;
-const #48 = Asciz      POSITIVE_INFINITY;
-const #49 = Asciz      SIZE;
-const #50 = Asciz      Signature;
-const #51 = Asciz      SourceFile;
-const #52 = Asciz      TYPE;
-const #53 = Asciz      abs;
-const #54 = Asciz      byteValue;
-const #55 = Asciz      compare;
-const #56 = Asciz      compareTo;
-const #57 = Asciz      doubleValue;
-const #58 = Asciz      equals;
-const #59 = Asciz      float;
-const #60 = Asciz      floatToIntBits;
-const #61 = Asciz      floatToRawIntBits;
-const #62 = Asciz      floatValue;
-const #63 = Asciz      getPrimitiveClass;
-const #64 = Asciz      hashCode;
-const #65 = Asciz      intBitsToFloat;
-const #66 = Asciz      intValue;
-const #67 = Asciz      isInfinite;
-const #68 = Asciz      isNaN;
-const #69 = Asciz      java/lang/Class;
-const #70 = Asciz      java/lang/Comparable;
-const #71 = Asciz      java/lang/Double;
-const #72 = Asciz      java/lang/Float;
-const #73 = Asciz      java/lang/Math;
-const #74 = Asciz      java/lang/Number;
-const #75 = Asciz      java/lang/NumberFormatException;
-const #76 = Asciz      java/lang/String;
-const #77 = Asciz      longValue;
-const #78 = Asciz      p-1022$;
-const #79 = Asciz      p-126;
-const #80 = Asciz      parseFloat;
-const #81 = Asciz      readJavaFormatString;
-const #82 = Asciz      replaceFirst;
-const #83 = Asciz      scalb;
-const #84 = Asciz      serialVersionUID;
-const #85 = Asciz      shortValue;
-const #86 = Asciz      sun/misc/FloatingDecimal;
-const #87 = Asciz      sun/misc/FpUtils;
-const #88 = Asciz      toHexString;
-const #89 = Asciz      toJavaFormatString;
-const #90 = Asciz      toString;
-const #91 = Asciz      value;
-const #92 = Asciz      valueOf;
-const #93 = int        -126;
-const #94 = int        32;
-const #95 = int        127;
-const #96 = float      1.4E-45f;
-const #97 = float      3.4028235E38f;
-const #98 = float      NaNf;
-const #99 = long       -2671257302660747028l;
-const #101 = class     #69;    //  java/lang/Class
-const #102 = class     #70;    //  java/lang/Comparable
-const #103 = class     #71;    //  java/lang/Double
-const #104 = class     #72;    //  java/lang/Float
-const #105 = class     #73;    //  java/lang/Math
-const #106 = class     #74;    //  java/lang/Number
-const #107 = class     #75;    //  java/lang/NumberFormatException
-const #108 = class     #76;    //  java/lang/String
-const #109 = class     #86;    //  sun/misc/FloatingDecimal
-const #110 = class     #87;    //  sun/misc/FpUtils
-const #111 = Asciz     Ljava/lang/Class<Ljava/lang/Float;>;;
-const #112 = Asciz     Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Float;>;;
-const #113 = Asciz     (F)Ljava/lang/Float;;
-const #114 = Asciz     (Ljava/lang/Float;)I;
-const #115 = Asciz     (Ljava/lang/Object;)I;
-const #116 = Asciz     (F)Ljava/lang/String;;
-const #117 = Asciz     (Ljava/lang/String;)F;
-const #118 = Asciz     (Ljava/lang/String;)Ljava/lang/Float;;
-const #119 = Asciz     (Ljava/lang/String;)Lsun/misc/FloatingDecimal;;
-const #120 = Asciz     (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;;
-const #121 = NameAndType       #91:#36;//  value:F
-const #122 = NameAndType       #52:#40;//  TYPE:Ljava/lang/Class;
-const #123 = NameAndType       #62:#12;//  floatValue:()F
-const #124 = NameAndType       #32:#17;//  "<init>":()V
-const #125 = NameAndType       #83:#21;//  scalb:(DI)D
-const #126 = NameAndType       #53:#22;//  abs:(F)F
-const #127 = NameAndType       #60:#23;//  floatToIntBits:(F)I
-const #128 = NameAndType       #61:#23;//  floatToRawIntBits:(F)I
-const #129 = NameAndType       #32:#24;//  "<init>":(F)V
-const #130 = NameAndType       #67:#25;//  isInfinite:(F)Z
-const #131 = NameAndType       #68:#25;//  isNaN:(F)Z
-const #132 = NameAndType       #55:#26;//  compare:(FF)I
-const #133 = NameAndType       #56:#114;//  compareTo:(Ljava/lang/Float;)I
-const #134 = NameAndType       #89:#15;//  toJavaFormatString:()Ljava/lang/String;
-const #135 = NameAndType       #88:#19;//  toHexString:(D)Ljava/lang/String;
-const #136 = NameAndType       #92:#116;//  valueOf:(F)Ljava/lang/String;
-const #137 = NameAndType       #63:#29;//  getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
-const #138 = NameAndType       #92:#118;//  valueOf:(Ljava/lang/String;)Ljava/lang/Float;
-const #139 = NameAndType       #81:#119;//  readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
-const #140 = NameAndType       #82:#120;//  replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-const #141 = Field     #104.#121;      //  java/lang/Float.value:F
-const #142 = Field     #104.#122;      //  java/lang/Float.TYPE:Ljava/lang/Class;
-const #143 = Method    #101.#137;      //  java/lang/Class.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
-const #144 = Method    #103.#135;      //  java/lang/Double.toHexString:(D)Ljava/lang/String;
-const #145 = Method    #104.#123;      //  java/lang/Float.floatValue:()F
-const #146 = Method    #104.#127;      //  java/lang/Float.floatToIntBits:(F)I
-const #147 = Method    #104.#128;      //  java/lang/Float.floatToRawIntBits:(F)I
-const #148 = Method    #104.#129;      //  java/lang/Float."<init>":(F)V
-const #149 = Method    #104.#130;      //  java/lang/Float.isInfinite:(F)Z
-const #150 = Method    #104.#131;      //  java/lang/Float.isNaN:(F)Z
-const #151 = Method    #104.#132;      //  java/lang/Float.compare:(FF)I
-const #152 = Method    #104.#133;      //  java/lang/Float.compareTo:(Ljava/lang/Float;)I
-const #153 = Method    #104.#138;      //  java/lang/Float.valueOf:(Ljava/lang/String;)Ljava/lang/Float;
-const #154 = Method    #105.#126;      //  java/lang/Math.abs:(F)F
-const #155 = Method    #106.#124;      //  java/lang/Number."<init>":()V
-const #156 = Method    #108.#136;      //  java/lang/String.valueOf:(F)Ljava/lang/String;
-const #157 = Method    #108.#140;      //  java/lang/String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-const #158 = Method    #109.#123;      //  sun/misc/FloatingDecimal.floatValue:()F
-const #159 = Method    #109.#129;      //  sun/misc/FloatingDecimal."<init>":(F)V
-const #160 = Method    #109.#134;      //  sun/misc/FloatingDecimal.toJavaFormatString:()Ljava/lang/String;
-const #161 = Method    #109.#139;      //  sun/misc/FloatingDecimal.readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
-const #162 = Method    #110.#125;      //  sun/misc/FpUtils.scalb:(DI)D
-const #163 = Asciz     Float.java;
-
-{
-public static final float POSITIVE_INFINITY;
-  Signature: F
-  Constant value: float Infinityf
-
-public static final float NEGATIVE_INFINITY;
-  Signature: F
-  Constant value: float -Infinityf
-
-public static final float NaN;
-  Signature: F
-  Constant value: float NaNf
-
-public static final float MAX_VALUE;
-  Signature: F
-  Constant value: float 3.4028235E38f
-
-public static final float MIN_NORMAL;
-  Signature: F
-  Constant value: float 1.17549435E-38f
-
-public static final float MIN_VALUE;
-  Signature: F
-  Constant value: float 1.4E-45f
-
-public static final int MAX_EXPONENT;
-  Signature: I
-  Constant value: int 127
-
-public static final int MIN_EXPONENT;
-  Signature: I
-  Constant value: int -126
-
-public static final int SIZE;
-  Signature: I
-  Constant value: int 32
-
-public static final java.lang.Class TYPE;
-  Signature: Ljava/lang/Class;
-  Signature: length = 0x2
-   00 6F 
-
-
-private final float value;
-  Signature: F
-
-
-private static final long serialVersionUID;
-  Signature: J
-  Constant value: long -2671257302660747028l
-
-public static java.lang.String toString(float);
-  Signature: (F)Ljava/lang/String;
-  LineNumberTable: 
-   line 182: 0
-
-
-
-  Code:
-   Stack=3, Locals=1, Args_size=1
-   0:  new     #109; //class sun/misc/FloatingDecimal
-   3:  dup
-   4:  fload_0
-   5:  invokespecial   #159; //Method sun/misc/FloatingDecimal."<init>":(F)V
-   8:  invokevirtual   #160; //Method sun/misc/FloatingDecimal.toJavaFormatString:()Ljava/lang/String;
-   11: areturn
-  LineNumberTable: 
-   line 182: 0
-
-
-public static java.lang.String toHexString(float);
-  Signature: (F)Ljava/lang/String;
-  LineNumberTable: 
-   line 260: 0
-   line 265: 16
-   line 269: 28
-   line 272: 37
-
-
-
-  Code:
-   Stack=3, Locals=2, Args_size=1
-   0:  fload_0
-   1:  invokestatic    #154; //Method java/lang/Math.abs:(F)F
-   4:  ldc     #5; //float 1.17549435E-38f
-   6:  fcmpg
-   7:  ifge    37
-   10: fload_0
-   11: fconst_0
-   12: fcmpl
-   13: ifeq    37
-   16: fload_0
-   17: f2d
-   18: sipush  -896
-   21: invokestatic    #162; //Method sun/misc/FpUtils.scalb:(DI)D
-   24: invokestatic    #144; //Method java/lang/Double.toHexString:(D)Ljava/lang/String;
-   27: astore_1
-   28: aload_1
-   29: ldc     #8; //String p-1022$
-   31: ldc     #9; //String p-126
-   33: invokevirtual   #157; //Method java/lang/String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-   36: areturn
-   37: fload_0
-   38: f2d
-   39: invokestatic    #144; //Method java/lang/Double.toHexString:(D)Ljava/lang/String;
-   42: areturn
-  LineNumberTable: 
-   line 260: 0
-   line 265: 16
-   line 269: 28
-   line 272: 37
-
-
-public static java.lang.Float valueOf(java.lang.String)   throws java.lang.NumberFormatException;
-  Signature: (Ljava/lang/String;)Ljava/lang/Float;
-  LineNumberTable: 
-   line 388: 0
-
-
-
-  Code:
-   Stack=3, Locals=1, Args_size=1
-   0:  new     #104; //class java/lang/Float
-   3:  dup
-   4:  aload_0
-   5:  invokestatic    #161; //Method sun/misc/FloatingDecimal.readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
-   8:  invokevirtual   #158; //Method sun/misc/FloatingDecimal.floatValue:()F
-   11: invokespecial   #148; //Method "<init>":(F)V
-   14: areturn
-  LineNumberTable: 
-   line 388: 0
-
-  Exceptions: 
-   throws java.lang.NumberFormatException
-public static java.lang.Float valueOf(float);
-  Signature: (F)Ljava/lang/Float;
-  LineNumberTable: 
-   line 405: 0
-
-
-
-  Code:
-   Stack=3, Locals=1, Args_size=1
-   0:  new     #104; //class java/lang/Float
-   3:  dup
-   4:  fload_0
-   5:  invokespecial   #148; //Method "<init>":(F)V
-   8:  areturn
-  LineNumberTable: 
-   line 405: 0
-
-
-public static float parseFloat(java.lang.String)   throws java.lang.NumberFormatException;
-  Signature: (Ljava/lang/String;)F
-  LineNumberTable: 
-   line 422: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  invokestatic    #161; //Method sun/misc/FloatingDecimal.readJavaFormatString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
-   4:  invokevirtual   #158; //Method sun/misc/FloatingDecimal.floatValue:()F
-   7:  freturn
-  LineNumberTable: 
-   line 422: 0
-
-  Exceptions: 
-   throws java.lang.NumberFormatException
-public static boolean isNaN(float);
-  Signature: (F)Z
-  LineNumberTable: 
-   line 434: 0
-
-
-
-  Code:
-   Stack=2, Locals=1, Args_size=1
-   0:  fload_0
-   1:  fload_0
-   2:  fcmpl
-   3:  ifeq    10
-   6:  iconst_1
-   7:  goto    11
-   10: iconst_0
-   11: ireturn
-  LineNumberTable: 
-   line 434: 0
-
-
-public static boolean isInfinite(float);
-  Signature: (F)Z
-  LineNumberTable: 
-   line 446: 0
-
-
-
-  Code:
-   Stack=2, Locals=1, Args_size=1
-   0:  fload_0
-   1:  ldc     #6; //float Infinityf
-   3:  fcmpl
-   4:  ifeq    14
-   7:  fload_0
-   8:  ldc     #4; //float -Infinityf
-   10: fcmpl
-   11: ifne    18
-   14: iconst_1
-   15: goto    19
-   18: iconst_0
-   19: ireturn
-  LineNumberTable: 
-   line 446: 0
-
-
-public java.lang.Float(float);
-  Signature: (F)V
-  LineNumberTable: 
-   line 462: 0
-   line 463: 4
-   line 464: 9
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=2
-   0:  aload_0
-   1:  invokespecial   #155; //Method java/lang/Number."<init>":()V
-   4:  aload_0
-   5:  fload_1
-   6:  putfield        #141; //Field value:F
-   9:  return
-  LineNumberTable: 
-   line 462: 0
-   line 463: 4
-   line 464: 9
-
-
-public java.lang.Float(double);
-  Signature: (D)V
-  LineNumberTable: 
-   line 472: 0
-   line 473: 4
-   line 474: 10
-
-
-
-  Code:
-   Stack=3, Locals=3, Args_size=2
-   0:  aload_0
-   1:  invokespecial   #155; //Method java/lang/Number."<init>":()V
-   4:  aload_0
-   5:  dload_1
-   6:  d2f
-   7:  putfield        #141; //Field value:F
-   10: return
-  LineNumberTable: 
-   line 472: 0
-   line 473: 4
-   line 474: 10
-
-
-public java.lang.Float(java.lang.String)   throws java.lang.NumberFormatException;
-  Signature: (Ljava/lang/String;)V
-  LineNumberTable: 
-   line 489: 0
-   line 490: 11
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=2
-   0:  aload_0
-   1:  aload_1
-   2:  invokestatic    #153; //Method valueOf:(Ljava/lang/String;)Ljava/lang/Float;
-   5:  invokevirtual   #145; //Method floatValue:()F
-   8:  invokespecial   #148; //Method "<init>":(F)V
-   11: return
-  LineNumberTable: 
-   line 489: 0
-   line 490: 11
-
-  Exceptions: 
-   throws java.lang.NumberFormatException
-public boolean isNaN();
-  Signature: ()Z
-  LineNumberTable: 
-   line 500: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  invokestatic    #150; //Method isNaN:(F)Z
-   7:  ireturn
-  LineNumberTable: 
-   line 500: 0
-
-
-public boolean isInfinite();
-  Signature: ()Z
-  LineNumberTable: 
-   line 512: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  invokestatic    #149; //Method isInfinite:(F)Z
-   7:  ireturn
-  LineNumberTable: 
-   line 512: 0
-
-
-public java.lang.String toString();
-  Signature: ()Ljava/lang/String;
-  LineNumberTable: 
-   line 525: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  invokestatic    #156; //Method java/lang/String.valueOf:(F)Ljava/lang/String;
-   7:  areturn
-  LineNumberTable: 
-   line 525: 0
-
-
-public byte byteValue();
-  Signature: ()B
-  LineNumberTable: 
-   line 536: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  f2i
-   5:  i2b
-   6:  ireturn
-  LineNumberTable: 
-   line 536: 0
-
-
-public short shortValue();
-  Signature: ()S
-  LineNumberTable: 
-   line 548: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  f2i
-   5:  i2s
-   6:  ireturn
-  LineNumberTable: 
-   line 548: 0
-
-
-public int intValue();
-  Signature: ()I
-  LineNumberTable: 
-   line 559: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  f2i
-   5:  ireturn
-  LineNumberTable: 
-   line 559: 0
-
-
-public long longValue();
-  Signature: ()J
-  LineNumberTable: 
-   line 570: 0
-
-
-
-  Code:
-   Stack=2, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  f2l
-   5:  lreturn
-  LineNumberTable: 
-   line 570: 0
-
-
-public float floatValue();
-  Signature: ()F
-  LineNumberTable: 
-   line 580: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  freturn
-  LineNumberTable: 
-   line 580: 0
-
-
-public double doubleValue();
-  Signature: ()D
-  LineNumberTable: 
-   line 592: 0
-
-
-
-  Code:
-   Stack=2, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  f2d
-   5:  dreturn
-  LineNumberTable: 
-   line 592: 0
-
-
-public int hashCode();
-  Signature: ()I
-  LineNumberTable: 
-   line 605: 0
-
-
-
-  Code:
-   Stack=1, Locals=1, Args_size=1
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  invokestatic    #146; //Method floatToIntBits:(F)I
-   7:  ireturn
-  LineNumberTable: 
-   line 605: 0
-
-
-public boolean equals(java.lang.Object);
-  Signature: (Ljava/lang/Object;)Z
-  LineNumberTable: 
-   line 647: 0
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=2
-   0:  aload_1
-   1:  instanceof      #104; //class java/lang/Float
-   4:  ifeq    31
-   7:  aload_1
-   8:  checkcast       #104; //class java/lang/Float
-   11: getfield        #141; //Field value:F
-   14: invokestatic    #146; //Method floatToIntBits:(F)I
-   17: aload_0
-   18: getfield        #141; //Field value:F
-   21: invokestatic    #146; //Method floatToIntBits:(F)I
-   24: if_icmpne       31
-   27: iconst_1
-   28: goto    32
-   31: iconst_0
-   32: ireturn
-  LineNumberTable: 
-   line 647: 0
-
-
-public static int floatToIntBits(float);
-  Signature: (F)I
-  LineNumberTable: 
-   line 680: 0
-   line 683: 5
-   line 686: 21
-   line 687: 24
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=1
-   0:  fload_0
-   1:  invokestatic    #147; //Method floatToRawIntBits:(F)I
-   4:  istore_1
-   5:  iload_1
-   6:  ldc     #2; //int 2139095040
-   8:  iand
-   9:  ldc     #2; //int 2139095040
-   11: if_icmpne       24
-   14: iload_1
-   15: ldc     #1; //int 8388607
-   17: iand
-   18: ifeq    24
-   21: ldc     #3; //int 2143289344
-   23: istore_1
-   24: iload_1
-   25: ireturn
-  LineNumberTable: 
-   line 680: 0
-   line 683: 5
-   line 686: 21
-   line 687: 24
-
-
-public static native int floatToRawIntBits(float);
-  Signature: (F)I
-
-
-
-
-public static native float intBitsToFloat(int);
-  Signature: (I)F
-
-
-
-
-public int compareTo(java.lang.Float);
-  Signature: (Ljava/lang/Float;)I
-  LineNumberTable: 
-   line 814: 0
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=2
-   0:  aload_0
-   1:  getfield        #141; //Field value:F
-   4:  aload_1
-   5:  getfield        #141; //Field value:F
-   8:  invokestatic    #151; //Method compare:(FF)I
-   11: ireturn
-  LineNumberTable: 
-   line 814: 0
-
-
-public static int compare(float, float);
-  Signature: (FF)I
-  LineNumberTable: 
-   line 836: 0
-   line 837: 6
-   line 838: 8
-   line 839: 14
-   line 841: 16
-   line 842: 21
-   line 844: 26
-
-
-
-  Code:
-   Stack=2, Locals=4, Args_size=2
-   0:  fload_0
-   1:  fload_1
-   2:  fcmpg
-   3:  ifge    8
-   6:  iconst_m1
-   7:  ireturn
-   8:  fload_0
-   9:  fload_1
-   10: fcmpl
-   11: ifle    16
-   14: iconst_1
-   15: ireturn
-   16: fload_0
-   17: invokestatic    #146; //Method floatToIntBits:(F)I
-   20: istore_2
-   21: fload_1
-   22: invokestatic    #146; //Method floatToIntBits:(F)I
-   25: istore_3
-   26: iload_2
-   27: iload_3
-   28: if_icmpne       35
-   31: iconst_0
-   32: goto    45
-   35: iload_2
-   36: iload_3
-   37: if_icmpge       44
-   40: iconst_m1
-   41: goto    45
-   44: iconst_1
-   45: ireturn
-  LineNumberTable: 
-   line 836: 0
-   line 837: 6
-   line 838: 8
-   line 839: 14
-   line 841: 16
-   line 842: 21
-   line 844: 26
-
-
-public int compareTo(java.lang.Object);
-  Signature: (Ljava/lang/Object;)I
-  LineNumberTable: 
-   line 33: 0
-
-
-
-  Code:
-   Stack=2, Locals=2, Args_size=2
-   0:  aload_0
-   1:  aload_1
-   2:  checkcast       #104; //class java/lang/Float
-   5:  invokevirtual   #152; //Method compareTo:(Ljava/lang/Float;)I
-   8:  ireturn
-  LineNumberTable: 
-   line 33: 0
-
-
-static {};
-  Signature: ()V
-  LineNumberTable: 
-   line 113: 0
-
-
-
-  Code:
-   Stack=1, Locals=0, Args_size=0
-   0:  ldc     #7; //String float
-   2:  invokestatic    #143; //Method java/lang/Class.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
-   5:  putstatic       #142; //Field TYPE:Ljava/lang/Class;
-   8:  return
-  LineNumberTable: 
-   line 113: 0
-
-
-}
-