diff -r 9d011ab3c192 -r 71e5cd5b29bc rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Sep 02 23:20:01 2015 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 14:31:36 2016 +0100 @@ -775,8 +775,15 @@ smapper.replace(this, VarType.DOUBLE, "(@1 / @2)", smapper.getD(1), smapper.popD()); break; case opc_irem: - smapper.replace(this, VarType.INTEGER, "(@1).mod32(@2)", +// +// direct check yields few percents +// in case of firefox 5.8s/4.6.s + smapper.replace(this, VarType.INTEGER, "((@1) % (@2))", smapper.getI(1), smapper.popI()); +// with myNum being local variable in the generated script +// it compiles and computes 5000 primes in 6s +// smapper.replace(this, VarType.INTEGER, "myNum.mod32(@1, @2)", +// smapper.getI(1), smapper.popI()); break; case opc_lrem: smapper.replace(this, VarType.LONG, "(@1).mod64(@2)",