emul/src/main/java/java/lang/Float.java
branchjavap
changeset 181 f426de5dc7f6
parent 116 033d51e026b0
child 187 391a5d25c0e1
     1.1 --- a/emul/src/main/java/java/lang/Float.java	Tue Oct 23 16:50:27 2012 +0200
     1.2 +++ b/emul/src/main/java/java/lang/Float.java	Sun Nov 18 10:00:23 2012 +0100
     1.3 @@ -819,6 +819,18 @@
     1.4       * @return  the {@code float} floating-point value with the same bit
     1.5       *          pattern.
     1.6       */
     1.7 +    @JavaScriptBody(args = "bits",
     1.8 +        body = 
     1.9 +          "if (bits === 0x7f800000) return Number.POSITIVE_INFINITY;\n"
    1.10 +        + "if (bits === 0xff800000) return Number.NEGATIVE_INFINITY;\n"
    1.11 +        + "if (bits >= 0x7f800001 && bits <= 0xffffffff) return Number.NaN;\n"
    1.12 +        + "var s = ((bits >> 31) == 0) ? 1 : -1;\n"
    1.13 +        + "var e = ((bits >> 23) & 0xff);\n"
    1.14 +        + "var m = (e == 0) ?\n"
    1.15 +        + "  (bits & 0x7fffff) << 1 :\n"
    1.16 +        + "  (bits & 0x7fffff) | 0x800000;\n"
    1.17 +        + "return s * m * Math.pow(2.0, e - 150);\n"
    1.18 +    )
    1.19      public static native float intBitsToFloat(int bits);
    1.20  
    1.21      /**