# HG changeset patch # User Martin Soch # Date 1360078334 -3600 # Node ID 7d3da112e2c1e137c247d00bc544c7a193e25bd3 # Parent 3754580b6c672be28952f1b8bea8f129ff7311f5 Long - conversion to exact string representation works. diff -r 3754580b6c67 -r 7d3da112e2c1 emul/mini/src/main/java/java/lang/Long.java --- a/emul/mini/src/main/java/java/lang/Long.java Tue Feb 05 15:03:22 2013 +0100 +++ b/emul/mini/src/main/java/java/lang/Long.java Tue Feb 05 16:32:14 2013 +0100 @@ -262,7 +262,7 @@ * @param i a {@code long} to be converted. * @return a string representation of the argument in base 10. */ - @JavaScriptBody(args = "i", body = "return i.toString();") + @JavaScriptBody(args = "i", body = "return i.toExactString();") public static String toString(long i) { if (i == Long.MIN_VALUE) return "-9223372036854775808"; diff -r 3754580b6c67 -r 7d3da112e2c1 emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js --- a/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Tue Feb 05 15:03:22 2013 +0100 +++ b/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Tue Feb 05 16:32:14 2013 +0100 @@ -37,8 +37,15 @@ var a = [ 6,9,2,7,6,9,4,9,2,4 ]; var s = ''; var digit; - var hi = this.hi; - var low = this; + var neg = this.hi < 0; + if (neg) { + var x = this.neg64(); + var hi = x.hi; + var low = x; + } else { + var hi = this.hi; + var low = this; + } for (var i = 0; i < a.length; i++) { res += hi * a[i]; var low_digit = low % 10; @@ -53,7 +60,7 @@ } s = String(digit).concat(s); } - return String(res).concat(s); + return (neg ? '-' : '').concat(res).concat(s); } return String(this); };