1.1 --- a/rt/emul/mini/src/main/java/java/io/DataInputStream.java Tue Feb 26 16:54:16 2013 +0100
1.2 +++ b/rt/emul/mini/src/main/java/java/io/DataInputStream.java Wed Feb 27 16:24:42 2013 +0100
1.3 @@ -468,42 +468,8 @@
1.4 * @see java.lang.Double#longBitsToDouble(long)
1.5 */
1.6 public final double readDouble() throws IOException {
1.7 - int hi = readInt();
1.8 - int low = readInt();
1.9 - return toDouble(hi, low);
1.10 - }
1.11 -
1.12 - @JavaScriptBody(args={ "hi", "low" },
1.13 - body=
1.14 - "if (low == 0) {\n"
1.15 - + " if (hi === 0x7ff00000) return Number.POSITIVE_INFINITY;\n"
1.16 - + " if (hi === 0xfff00000) return Number.NEGATIVE_INFINITY;\n"
1.17 - + "}\n"
1.18 - + "if (hi >= 0x7ff00000 && hi <= 0x7fffffff) return Number.NaN;\n"
1.19 - + "if (hi >= 0xfff00000 && hi <= 0xffffffff) return Number.NaN;\n"
1.20 - + "var s = (hi & 0x80000000) === 0 ? 1 : -1;\n"
1.21 - + "var e = (hi >> 20) & 0x7ff;\n"
1.22 - + "var to32 = low >> 0;\n"
1.23 - + "if (e === 0) {\n"
1.24 - + " if (to32 & 0x80000000) {\n"
1.25 - + " hi = hi << 1 + 1; low = low << 1;\n"
1.26 - + " } else {\n"
1.27 - + " hi = hi << 1; low = low << 1;\n"
1.28 - + " }\n"
1.29 - + "} else {\n"
1.30 - + " hi = (hi & 0xfffff) | 0x100000;\n"
1.31 - + "}\n"
1.32 - + "to32 = low >> 0;\n"
1.33 - + "var m = Math.pow(2.0, 32) * hi + to32;\n"
1.34 - + "var r = s * m * Math.pow(2.0, e - 1075);\n"
1.35 - + "//throw 'exp: ' + e + ' sign: ' + s + ' hi:' + hi + ' low: ' + low + ' m: ' + m + ' r: ' + r;\n"
1.36 - + "return r;\n"
1.37 - )
1.38 - private static double toDouble(int hi, int low) {
1.39 - long both = hi;
1.40 - both = (both << 32) & low;
1.41 - return Double.doubleToLongBits(both);
1.42 - }
1.43 + return Double.longBitsToDouble(readLong());
1.44 + }
1.45
1.46 private char lineBuffer[];
1.47