diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index df3b412..50f1576 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -635,6 +635,10 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod case DROP: codeStream.write( DROP ); break; + case BLOCK: + codeStream.write( BLOCK ); + codeStream.write( 0x40 ); // void; the return type of the block. currently we does not use it + break; default: throw new Error( "Unknown block: " + op ); } diff --git a/src/de/inetsoftware/jwebassembly/module/BlockOperator.java b/src/de/inetsoftware/jwebassembly/module/BlockOperator.java index 15efdbe..16c5f68 100644 --- a/src/de/inetsoftware/jwebassembly/module/BlockOperator.java +++ b/src/de/inetsoftware/jwebassembly/module/BlockOperator.java @@ -29,4 +29,6 @@ public enum BlockOperator { END, GOTO, DROP, + BLOCK, + SWITCH, } diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index 2f3bfe3..ea6e3be 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -271,6 +271,10 @@ public class TextModuleWriter extends ModuleWriter { case DROP: name = "drop"; break; + case BLOCK: + name = "block"; + insetAfter++; + break; default: throw new Error( "Unknown block: " + op ); }