emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js
brancharithmetic
changeset 629 2d537f8cd604
parent 628 e606853325f1
child 630 04e312a7887e
     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);