emul/mini/src/main/java/java/lang/Float.java
brancharithmetic
changeset 755 5652acd48509
parent 554 05224402145d
     1.1 --- a/emul/mini/src/main/java/java/lang/Float.java	Wed Jan 23 20:39:23 2013 +0100
     1.2 +++ b/emul/mini/src/main/java/java/lang/Float.java	Mon Feb 25 19:00:08 2013 +0100
     1.3 @@ -819,11 +819,15 @@
     1.4       */
     1.5      @JavaScriptBody(args = "bits",
     1.6          body = 
     1.7 -          "if (bits === 0x7f800000) return Number.POSITIVE_INFINITY;\n"
     1.8 -        + "if (bits === 0xff800000) return Number.NEGATIVE_INFINITY;\n"
     1.9 -        + "if (bits >= 0x7f800001 && bits <= 0xffffffff) return Number.NaN;\n"
    1.10 -        + "var s = ((bits >> 31) == 0) ? 1 : -1;\n"
    1.11 +          "var s = ((bits >> 31) == 0) ? 1 : -1;\n"
    1.12          + "var e = ((bits >> 23) & 0xff);\n"
    1.13 +        + "if (e === 0xff) {\n"
    1.14 +        + "    if ((bits & 0x7fffff) === 0) {\n"
    1.15 +        + "        return (s > 0) ? Number.POSITIVE_INFINITY"
    1.16 +                              + " : Number.NEGATIVE_INFINITY;\n"
    1.17 +        + "    }\n"
    1.18 +        + "    return Number.NaN;\n"
    1.19 +        + "}\n"
    1.20          + "var m = (e == 0) ?\n"
    1.21          + "  (bits & 0x7fffff) << 1 :\n"
    1.22          + "  (bits & 0x7fffff) | 0x800000;\n"