emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js
1.1 --- a/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Thu Jan 31 20:37:12 2013 +0100
1.2 +++ b/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Fri Feb 01 06:09:18 2013 +0100
1.3 @@ -121,10 +121,10 @@
1.4
1.5 Number.prototype.shl64 = function(x) {
1.6 if (x >= 32) {
1.7 - var hi = (this << (x - 32)) | 0;
1.8 + var hi = this << (x - 32);
1.9 return hi.next32(0);
1.10 } else {
1.11 - var hi = (this.high32() << x) | 0;
1.12 + var hi = this.high32() << x;
1.13 var low_reminder = this >> (32 - x);
1.14 hi |= low_reminder;
1.15 var low = this << x;
1.16 @@ -135,11 +135,11 @@
1.17
1.18 Number.prototype.shr64 = function(x) {
1.19 if (x >= 32) {
1.20 - var low = (this.high32() >> (x - 32)) | 0;
1.21 + var low = this.high32() >> (x - 32);
1.22 low += (low < 0) ? (__m32+1) : 0;
1.23 return low;
1.24 } else {
1.25 - var low = (this >> x) | 0;
1.26 + var low = this >> x;
1.27 var hi_reminder = this.high32() << (32 - x);
1.28 low |= hi_reminder;
1.29 low += (low < 0) ? (__m32+1) : 0;
1.30 @@ -148,6 +148,21 @@
1.31 }
1.32 };
1.33
1.34 +Number.prototype.ushr64 = function(x) {
1.35 + if (x >= 32) {
1.36 + var low = this.high32() >>> (x - 32);
1.37 + low += (low < 0) ? (__m32+1) : 0;
1.38 + return low;
1.39 + } else {
1.40 + var low = this >>> x;
1.41 + var hi_reminder = this.high32() << (32 - x);
1.42 + low |= hi_reminder;
1.43 + low += (low < 0) ? (__m32+1) : 0;
1.44 + var hi = this.high32() >>> x;
1.45 + return hi.next32(low);
1.46 + }
1.47 +};
1.48 +
1.49 Number.prototype.compare64 = function(x) {
1.50 if (this.hi == x.hi) {
1.51 return (this == x) ? 0 : ((this < x) ? -1 : 1);