diff -r 136787ac00d3 -r 65cab8539582 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Feb 27 12:06:58 2015 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Feb 27 19:28:07 2015 +0100 @@ -975,11 +975,13 @@ break; case opc_fcmpl: case opc_fcmpg: - smapper.replace(this, VarType.INTEGER, "(@2).compare(@1)", smapper.popF(), smapper.getF(0)); + emit(smapper, this, "var @3 = (@2 == @1) ? 0 : ((@2 < @1) ? -1 : 1);", + smapper.popF(), smapper.popF(), smapper.pushI()); break; case opc_dcmpl: case opc_dcmpg: - smapper.replace(this, VarType.INTEGER, "(@2).compare(@1)", smapper.popD(), smapper.getD(0)); + emit(smapper, this, "var @3 = (@2 == @1) ? 0 : ((@2 < @1) ? -1 : 1);", + smapper.popD(), smapper.popD(), smapper.pushI()); break; case opc_if_acmpeq: i = generateIf(smapper, byteCodes, i, smapper.popA(), smapper.popA(),