Added tests for integer division and reminder after division. Removed JS version of String.hashCode since standard version is already correct. arithmetic
authorMartin Soch <Martin.Soch@oracle.com>
Wed, 19 Dec 2012 11:12:04 +0100
brancharithmetic
changeset 352c0fd4e7919b3
parent 351 b7459b10d581
child 426 b5c5d51ddc4b
Added tests for integer division and reminder after division. Removed JS version of String.hashCode since standard version is already correct.
emul/src/main/java/java/lang/String.java
vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareHashTest.java
vm/src/test/java/org/apidesign/vm4brwsr/tck/IntegerArithmeticTest.java
     1.1 --- a/emul/src/main/java/java/lang/String.java	Tue Dec 18 20:19:11 2012 +0100
     1.2 +++ b/emul/src/main/java/java/lang/String.java	Wed Dec 19 11:12:04 2012 +0100
     1.3 @@ -1491,15 +1491,6 @@
     1.4       *
     1.5       * @return  a hash code value for this object.
     1.6       */
     1.7 -    @JavaScriptBody(args = "self", body = 
     1.8 -        "var h = 0;\n" +
     1.9 -        "var s = self.toString();\n" +
    1.10 -        "for (var i = 0; i < s.length; i++) {\n" +
    1.11 -        "  var high = (h >> 16) & 0xffff, low = h & 0xffff;\n" +
    1.12 -        "  h = (((((31 * high) & 0xffff) << 16) >>> 0) + (31 * low) + s.charCodeAt(i)) & 0xffffffff;\n" +
    1.13 -        "}\n" +
    1.14 -        "return h;\n"
    1.15 -    )
    1.16      public int hashCode() {
    1.17          int h = hash;
    1.18          if (h == 0 && length() > 0) {
     2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareHashTest.java	Tue Dec 18 20:19:11 2012 +0100
     2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareHashTest.java	Wed Dec 19 11:12:04 2012 +0100
     2.3 @@ -35,6 +35,10 @@
     2.4          return o.hashCode() - o.hashCode();
     2.5      }
     2.6      
     2.7 +    @Compare public int hashOfInt() {
     2.8 +        return Integer.valueOf(Integer.MAX_VALUE).hashCode();
     2.9 +    }
    2.10 +    
    2.11      @Factory
    2.12      public static Object[] create() {
    2.13          return CompareVMs.create(CompareHashTest.class);
     3.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/tck/IntegerArithmeticTest.java	Tue Dec 18 20:19:11 2012 +0100
     3.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/tck/IntegerArithmeticTest.java	Wed Dec 19 11:12:04 2012 +0100
     3.3 @@ -39,6 +39,14 @@
     3.4          return x * y;
     3.5      }
     3.6      
     3.7 +    private static int div(int x, int y) {
     3.8 +        return x / y;
     3.9 +    }
    3.10 +    
    3.11 +    private static int mod(int x, int y) {
    3.12 +        return x % y;
    3.13 +    }
    3.14 +    
    3.15      @Compare public int addOverflow() {
    3.16          return add(Integer.MAX_VALUE, 1);
    3.17      }
    3.18 @@ -75,6 +83,14 @@
    3.19          return mul(119106029, 1103515245);
    3.20      }
    3.21      
    3.22 +    @Compare public int division() {
    3.23 +        return div(1, 2);
    3.24 +    }
    3.25 +    
    3.26 +    @Compare public int divisionReminder() {
    3.27 +        return mod(1, 2);
    3.28 +    }
    3.29 +    
    3.30      @Factory
    3.31      public static Object[] create() {
    3.32          return CompareVMs.create(IntegerArithmeticTest.class);