From 987d26de649c8791b540565e455756f9a66dcd16 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Thu, 3 May 2018 22:57:44 +0200 Subject: [PATCH] handle the block operator --- .../inetsoftware/jwebassembly/binary/BinaryModuleWriter.java | 4 ++++ src/de/inetsoftware/jwebassembly/module/BlockOperator.java | 2 ++ src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java | 4 ++++ 3 files changed, 10 insertions(+) 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 ); }