Support for reminders javap
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 18 Nov 2012 08:41:08 +0100
branchjavap
changeset 17828143312edb5
parent 177 0bda47eab728
child 179 469199c2994a
Support for reminders
vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java
vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Nov 18 08:31:56 2012 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Nov 18 08:41:08 2012 +0100
     1.3 @@ -318,6 +318,12 @@
     1.4                  case opc_ddiv:
     1.5                      out.append("{ var tmp = stack.pop(); stack.push(stack.pop() / tmp); }");
     1.6                      break;
     1.7 +                case opc_irem:
     1.8 +                case opc_lrem:
     1.9 +                case opc_frem:
    1.10 +                case opc_drem:
    1.11 +                    out.append("{ var d = stack.pop(); stack.push(stack.pop() % d); }");
    1.12 +                    break;
    1.13                  case opc_iand:
    1.14                  case opc_land:
    1.15                      out.append("stack.push(stack.pop() & stack.pop());");
     2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java	Sun Nov 18 08:31:56 2012 +0100
     2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java	Sun Nov 18 08:41:08 2012 +0100
     2.3 @@ -55,6 +55,15 @@
     2.4              Double.valueOf(3.0), 1000.0
     2.5          );
     2.6      }
     2.7 +    
     2.8 +    @Test public void javaRem() {
     2.9 +        assertEquals(3, Numbers.rem(303, 10));
    2.10 +    }
    2.11 +    @Test public void jsRem() throws Exception {
    2.12 +        assertExec("Should be three", "org_apidesign_vm4brwsr_Numbers_remIII", 
    2.13 +            Double.valueOf(3.0), 303, 10
    2.14 +        );
    2.15 +    }
    2.16  
    2.17      
    2.18      private static CharSequence codeSeq;
     3.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java	Sun Nov 18 08:31:56 2012 +0100
     3.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java	Sun Nov 18 08:41:08 2012 +0100
     3.3 @@ -28,4 +28,7 @@
     3.4      public static String autoboxDblToString() {
     3.5          return autoboxDbl().toString().toString();
     3.6      }
     3.7 +    public static int rem(int a, int b) {
     3.8 +        return a % b;
     3.9 +    }
    3.10  }