rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js
changeset 1872 df5db062f180
parent 1871 bcbc4c03d35d
child 1873 9af63c578721
     1.1 --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Wed Jan 27 21:24:22 2016 +0100
     1.2 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Wed Jan 27 21:37:10 2016 +0100
     1.3 @@ -19,7 +19,10 @@
     1.4      };
     1.5  
     1.6      numberPrototype.high32 = function() {
     1.7 -        return this.hi ? this.hi : (Math.floor(this / (__m32 + 1))) | 0;
     1.8 +        return high32(this);
     1.9 +    };
    1.10 +    function high32(x) {
    1.11 +        return x.hi ? x.hi : (Math.floor(x / (__m32 + 1))) | 0;
    1.12      };
    1.13      numberPrototype.toFP = function() {
    1.14          return this.hi ? this.hi * (__m32 + 1) + this : this;
    1.15 @@ -84,7 +87,7 @@
    1.16              carry = 1;
    1.17              low -= (__m32 + 1);
    1.18          }
    1.19 -        var hi = (x.high32() + y.high32() + carry) | 0;
    1.20 +        var hi = (high32(x) + high32(y) + carry) | 0;
    1.21          return hi.next32(low);
    1.22      };
    1.23  
    1.24 @@ -95,7 +98,7 @@
    1.25              carry = 1;
    1.26              low += (__m32 + 1);
    1.27          }
    1.28 -        var hi = (x.high32() - y.high32() - carry) | 0;
    1.29 +        var hi = (high32(x) - high32(y) - carry) | 0;
    1.30          return hi.next32(low);
    1.31      };
    1.32  
    1.33 @@ -118,8 +121,8 @@
    1.34          }
    1.35          var hi = (hi_hi << 16) + hi_low;
    1.36  
    1.37 -        var m1 = mul32(x.high32(), y);
    1.38 -        var m2 = mul32(x, y.high32());
    1.39 +        var m1 = mul32(high32(x), y);
    1.40 +        var m2 = mul32(x, high32(y));
    1.41          hi = add32(add32(hi, m1), m2);
    1.42  
    1.43          return hi.next32(low);
    1.44 @@ -159,12 +162,12 @@
    1.45  
    1.46      function shl64(thiz, x) {
    1.47          x &= 0x3f;
    1.48 -        if (x == 0) return thiz;
    1.49 +        if (x === 0) return thiz;
    1.50          if (x >= 32) {
    1.51              var hi = thiz << (x - 32);
    1.52              return hi.next32(0);
    1.53          } else {
    1.54 -            var hi = thiz.high32() << x;
    1.55 +            var hi = high32(thiz) << x;
    1.56              var low_reminder = thiz >> (32 - x);
    1.57              hi |= low_reminder;
    1.58              var low = thiz << x;
    1.59 @@ -175,47 +178,47 @@
    1.60  
    1.61      function shr64(thiz, x) {
    1.62          x &= 0x3f;
    1.63 -        if (x == 0) return thiz;
    1.64 +        if (x === 0) return thiz;
    1.65          if (x >= 32) {
    1.66 -            var low = thiz.high32() >> (x - 32);
    1.67 +            var low = high32(thiz) >> (x - 32);
    1.68              low += (low < 0) ? (__m32 + 1) : 0;
    1.69              return low;
    1.70          } else {
    1.71              var low = thiz >>> x;
    1.72 -            var hi_reminder = thiz.high32() << (32 - x);
    1.73 +            var hi_reminder = high32(thiz) << (32 - x);
    1.74              low |= hi_reminder;
    1.75              low += (low < 0) ? (__m32 + 1) : 0;
    1.76 -            var hi = thiz.high32() >> x;
    1.77 +            var hi = high32(thiz) >> x;
    1.78              return hi.next32(low);
    1.79          }
    1.80      };
    1.81  
    1.82      function ushr64(thiz, x) {
    1.83          x &= 0x3f;
    1.84 -        if (x == 0) return thiz;
    1.85 +        if (x === 0) return thiz;
    1.86          if (x >= 32) {
    1.87 -            var low = thiz.high32() >>> (x - 32);
    1.88 +            var low = high32(thiz) >>> (x - 32);
    1.89              low += (low < 0) ? (__m32 + 1) : 0;
    1.90              return low;
    1.91          } else {
    1.92              var low = thiz >>> x;
    1.93 -            var hi_reminder = thiz.high32() << (32 - x);
    1.94 +            var hi_reminder = high32(thiz) << (32 - x);
    1.95              low |= hi_reminder;
    1.96              low += (low < 0) ? (__m32 + 1) : 0;
    1.97 -            var hi = thiz.high32() >>> x;
    1.98 +            var hi = high32(thiz) >>> x;
    1.99              return hi.next32(low);
   1.100          }
   1.101      };
   1.102  
   1.103      function compare64(x, y) {
   1.104 -        if (x.high32() === y.high32()) {
   1.105 +        if (high32(x) === high32(y)) {
   1.106              return (x < y) ? -1 : ((x > y) ? 1 : 0);
   1.107          }
   1.108 -        return (x.high32() < y.high32()) ? -1 : 1;
   1.109 +        return (high32(x) < high32(y)) ? -1 : 1;
   1.110      };
   1.111  
   1.112      function neg64(x) {
   1.113 -        var hi = x.high32();
   1.114 +        var hi = high32(x);
   1.115          var low = x;
   1.116          if ((hi === 0) && (low < 0)) {
   1.117              return -low;
   1.118 @@ -466,26 +469,26 @@
   1.119          var negateResult = false;
   1.120          var u, v;
   1.121  
   1.122 -        if ((x.high32() & 0x80000000) !== 0) {
   1.123 +        if ((high32(x) & 0x80000000) !== 0) {
   1.124              u = neg64(x);
   1.125              negateResult = !negateResult;
   1.126          } else {
   1.127              u = x;
   1.128          }
   1.129  
   1.130 -        if ((y.high32() & 0x80000000) !== 0) {
   1.131 +        if ((high32(y) & 0x80000000) !== 0) {
   1.132              v = neg64(y);
   1.133              negateResult = !negateResult;
   1.134          } else {
   1.135              v = y;
   1.136          }
   1.137  
   1.138 -        if ((v === 0) && (v.high32() === 0)) {
   1.139 +        if ((v === 0) && (high32(v) === 0)) {
   1.140              __handleDivByZero();
   1.141          }
   1.142  
   1.143 -        if (u.high32() === 0) {
   1.144 -            if (v.high32() === 0) {
   1.145 +        if (high32(u) === 0) {
   1.146 +            if (high32(v) === 0) {
   1.147                  var result = (u / v) | 0;
   1.148                  return negateResult ? neg64(result) : result;
   1.149              }
   1.150 @@ -493,8 +496,8 @@
   1.151              return 0;
   1.152          }
   1.153  
   1.154 -        var u64 = new __Int64(u.high32(), u);
   1.155 -        var v64 = new __Int64(v.high32(), v);
   1.156 +        var u64 = new __Int64(high32(u), u);
   1.157 +        var v64 = new __Int64(high32(v), v);
   1.158          var q64 = new __Int64(0, 0);
   1.159          var r64 = new __Int64(0, 0);
   1.160  
   1.161 @@ -508,30 +511,30 @@
   1.162          var negateResult = false;
   1.163          var u, v;
   1.164          
   1.165 -        if ((x.high32() & 0x80000000) !== 0) {
   1.166 +        if ((high32(x) & 0x80000000) !== 0) {
   1.167              u = neg64(x);
   1.168              negateResult = !negateResult;
   1.169          } else {
   1.170              u = x;
   1.171          }
   1.172  
   1.173 -        if ((y.high32() & 0x80000000) !== 0) {
   1.174 +        if ((high32(y) & 0x80000000) !== 0) {
   1.175              v = neg64(y);
   1.176          } else {
   1.177              v = y;
   1.178          }
   1.179  
   1.180 -        if ((v === 0) && (v.high32() === 0)) {
   1.181 +        if ((v === 0) && (high32(v) === 0)) {
   1.182              __handleDivByZero();
   1.183          }
   1.184  
   1.185 -        if (u.high32() === 0) {
   1.186 -            var result = (v.high32() === 0) ? (u % v) : u;
   1.187 +        if (high32(u) === 0) {
   1.188 +            var result = (high32(v) === 0) ? (u % v) : u;
   1.189              return negateResult ? neg64(result) : result;
   1.190          }
   1.191  
   1.192 -        var u64 = new __Int64(u.high32(), u);
   1.193 -        var v64 = new __Int64(v.high32(), v);
   1.194 +        var u64 = new __Int64(high32(u), u);
   1.195 +        var v64 = new __Int64(high32(v), v);
   1.196          var q64 = new __Int64(0, 0);
   1.197          var r64 = new __Int64(0, 0);
   1.198