# HG changeset patch # User Jaroslav Tulach # Date 1353224468 -3600 # Node ID 28143312edb5ce60404af06dc1033d9098425e45 # Parent 0bda47eab72809fd34e8f98a5098fb96fb7091a4 Support for reminders diff -r 0bda47eab728 -r 28143312edb5 vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Nov 18 08:31:56 2012 +0100 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Nov 18 08:41:08 2012 +0100 @@ -318,6 +318,12 @@ case opc_ddiv: out.append("{ var tmp = stack.pop(); stack.push(stack.pop() / tmp); }"); break; + case opc_irem: + case opc_lrem: + case opc_frem: + case opc_drem: + out.append("{ var d = stack.pop(); stack.push(stack.pop() % d); }"); + break; case opc_iand: case opc_land: out.append("stack.push(stack.pop() & stack.pop());"); diff -r 0bda47eab728 -r 28143312edb5 vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Sun Nov 18 08:31:56 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Sun Nov 18 08:41:08 2012 +0100 @@ -55,6 +55,15 @@ Double.valueOf(3.0), 1000.0 ); } + + @Test public void javaRem() { + assertEquals(3, Numbers.rem(303, 10)); + } + @Test public void jsRem() throws Exception { + assertExec("Should be three", "org_apidesign_vm4brwsr_Numbers_remIII", + Double.valueOf(3.0), 303, 10 + ); + } private static CharSequence codeSeq; diff -r 0bda47eab728 -r 28143312edb5 vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun Nov 18 08:31:56 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun Nov 18 08:41:08 2012 +0100 @@ -28,4 +28,7 @@ public static String autoboxDblToString() { return autoboxDbl().toString().toString(); } + public static int rem(int a, int b) { + return a % b; + } }