diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index 4f80706..53cea13 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -1302,11 +1302,16 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod codeStream.writeOpCode( UNREACHABLE ); break; case TRY: - codeStream.writeOpCode( TRY ); + codeStream.writeOpCode( options.useEH() ? TRY : BLOCK ); codeStream.writeValueType( ValueType.empty ); // void; the return type of the try. currently we does not use it break; case CATCH: - codeStream.writeOpCode( CATCH ); + if( options.useEH() ) { + codeStream.writeOpCode( CATCH ); + } else { + codeStream.writeOpCode( BR ); + codeStream.writeVaruint32( 0 ); + } break; case THROW: if( options.useEH() ) { diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index f358d22..a08151a 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -768,12 +768,12 @@ public class TextModuleWriter extends ModuleWriter { name = "unreachable"; break; case TRY: - name = "try"; + name = options.useEH() ? "try" : "block"; insetAfter++; break; case CATCH: inset--; - name = "catch"; + name = options.useEH() ? "catch" : "br 0"; insetAfter++; break; case THROW: