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 }