diff -r 033d51e026b0 -r f426de5dc7f6 emul/src/main/java/java/lang/Float.java --- a/emul/src/main/java/java/lang/Float.java Tue Oct 23 16:50:27 2012 +0200 +++ b/emul/src/main/java/java/lang/Float.java Sun Nov 18 10:00:23 2012 +0100 @@ -819,6 +819,18 @@ * @return the {@code float} floating-point value with the same bit * pattern. */ + @JavaScriptBody(args = "bits", + body = + "if (bits === 0x7f800000) return Number.POSITIVE_INFINITY;\n" + + "if (bits === 0xff800000) return Number.NEGATIVE_INFINITY;\n" + + "if (bits >= 0x7f800001 && bits <= 0xffffffff) return Number.NaN;\n" + + "var s = ((bits >> 31) == 0) ? 1 : -1;\n" + + "var e = ((bits >> 23) & 0xff);\n" + + "var m = (e == 0) ?\n" + + " (bits & 0x7fffff) << 1 :\n" + + " (bits & 0x7fffff) | 0x800000;\n" + + "return s * m * Math.pow(2.0, e - 150);\n" + ) public static native float intBitsToFloat(int bits); /**