Brinding Martin's long arithmetic improvements to default, so EnumSets really work
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 09 Oct 2013 22:04:11 +0200
changeset 13611b333e5804f5
parent 1360 49fb4574259b
parent 1352 7bc78045adfd
child 1362 b37e6e49d9d6
Brinding Martin's long arithmetic improvements to default, so EnumSets really work
rt/emul/compact/src/main/java/java/lang/System.java
rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java
     1.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java	Wed Oct 09 22:03:26 2013 +0200
     1.2 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java	Wed Oct 09 22:04:11 2013 +0200
     1.3 @@ -32,7 +32,6 @@
     1.4          B, W;
     1.5      }
     1.6  
     1.7 -    /*
     1.8      @Compare public String enumSet() {
     1.9          try { throw new Exception(); } catch (Exception ex) {}
    1.10          EnumSet<Color> c = EnumSet.allOf(Color.class);
    1.11 @@ -43,7 +42,6 @@
    1.12          EnumSet<Color> c = EnumSet.of(Color.B, Color.W);
    1.13          return c.toString();
    1.14      }
    1.15 -    */
    1.16  
    1.17      @Compare public boolean enumFirstContains() {
    1.18          EnumSet<Color> c = EnumSet.of(Color.B);
     2.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java	Wed Oct 09 22:03:26 2013 +0200
     2.2 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java	Wed Oct 09 22:04:11 2013 +0200
     2.3 @@ -304,6 +304,14 @@
     2.4      @Compare public long shiftL3() {
     2.5          return shl(0x00fa37d7763e0ca1l, 45);
     2.6      }
     2.7 +    
     2.8 +    @Compare public long shiftL4() {
     2.9 +        return shl(0x00fa37d7763e0ca1l, 0);
    2.10 +    }
    2.11 +    
    2.12 +    @Compare public long shiftL5() {
    2.13 +        return shl(0x00fa37d7763e0ca1l, 70);
    2.14 +    }
    2.15  
    2.16      @Compare public long shiftR1() {
    2.17          return shr(0x00fa37d7763e0ca1l, 5);
    2.18 @@ -316,6 +324,14 @@
    2.19      @Compare public long shiftR3() {
    2.20          return shr(0x00fa37d7763e0ca1l, 45);
    2.21      }
    2.22 +    
    2.23 +    @Compare public long shiftR4() {
    2.24 +        return shr(0x00fa37d7763e0ca1l, 0);
    2.25 +    }
    2.26 +    
    2.27 +    @Compare public long shiftR5() {
    2.28 +        return shr(0x00fa37d7763e0ca1l, 70);
    2.29 +    }
    2.30  
    2.31      @Compare public long uShiftR1() {
    2.32          return ushr(0x00fa37d7763e0ca1l, 5);
    2.33 @@ -324,14 +340,30 @@
    2.34      @Compare public long uShiftR2() {
    2.35          return ushr(0x00fa37d7763e0ca1l, 45);
    2.36      }
    2.37 +    
    2.38 +    @Compare public long uShiftR3() {
    2.39 +        return ushr(0x00fa37d7763e0ca1l, 0);
    2.40 +    }
    2.41 +    
    2.42 +    @Compare public long uShiftR4() {
    2.43 +        return ushr(0x00fa37d7763e0ca1l, 70);
    2.44 +    }
    2.45  
    2.46 -    @Compare public long uShiftR3() {
    2.47 +    @Compare public long uShiftR5() {
    2.48          return ushr(0xf0fa37d7763e0ca1l, 5);
    2.49      }
    2.50  
    2.51 -    @Compare public long uShiftR4() {
    2.52 +    @Compare public long uShiftR6() {
    2.53          return ushr(0xf0fa37d7763e0ca1l, 45);
    2.54      }
    2.55 +    
    2.56 +    @Compare public long uShiftR7() {
    2.57 +        return ushr(0xf0fa37d7763e0ca1l, 0);
    2.58 +    }
    2.59 +    
    2.60 +    @Compare public long uShiftR8() {
    2.61 +        return ushr(0xf0fa37d7763e0ca1l, 70);
    2.62 +    }
    2.63  
    2.64      @Compare public long and1() {
    2.65          return and(0x00fa37d7763e0ca1l, 0xa7b3432fff00123el);
     3.1 --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Wed Oct 09 22:03:26 2013 +0200
     3.2 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Wed Oct 09 22:04:11 2013 +0200
     3.3 @@ -176,6 +176,8 @@
     3.4      };
     3.5  
     3.6      numberPrototype.shl64 = function(x) {
     3.7 +        x &= 0x3f;
     3.8 +        if (x == 0) return this;
     3.9          if (x >= 32) {
    3.10              var hi = this << (x - 32);
    3.11              return hi.next32(0);
    3.12 @@ -190,6 +192,8 @@
    3.13      };
    3.14  
    3.15      numberPrototype.shr64 = function(x) {
    3.16 +        x &= 0x3f;
    3.17 +        if (x == 0) return this;
    3.18          if (x >= 32) {
    3.19              var low = this.high32() >> (x - 32);
    3.20              low += (low < 0) ? (__m32 + 1) : 0;
    3.21 @@ -205,6 +209,8 @@
    3.22      };
    3.23  
    3.24      numberPrototype.ushr64 = function(x) {
    3.25 +        x &= 0x3f;
    3.26 +        if (x == 0) return this;
    3.27          if (x >= 32) {
    3.28              var low = this.high32() >>> (x - 32);
    3.29              low += (low < 0) ? (__m32 + 1) : 0;