diff -r d382dacfd73f -r 6f8683517f1f rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Tue Feb 26 16:54:16 2013 +0100 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Wed Feb 27 16:24:42 2013 +0100 @@ -28,8 +28,17 @@ return this.hi ? this.hi * (__m32+1) + this : this; }; Number.prototype.toLong = function() { - var hi = (this > __m32) ? (Math.floor(this / (__m32+1))) | 0 : 0; - return hi.next32(Math.floor(this % (__m32+1))); + var hi = (this / (__m32+1)) | 0; + var low = (this % (__m32+1)) | 0; + if (low < 0) { + low += __m32+1; + } + + if (this < 0) { + hi -= 1; + } + + return hi.next32(low); }; Number.prototype.toExactString = function() { @@ -481,7 +490,7 @@ v = x; } - if ((v === 0) && (v.high32() === 0)) { + if ((v == 0) && (v.high32() === 0)) { __handleDivByZero(); } @@ -522,7 +531,7 @@ v = x; } - if ((v === 0) && (v.high32() === 0)) { + if ((v == 0) && (v.high32() === 0)) { __handleDivByZero(); }