From e8303eb805b33b64a94573064b3c1264b0145964 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 26 Nov 2023 16:15:20 +0000 Subject: Support Wasm throw instructions --- .../binary/WasmBinaryFormatInstructionsTests.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java index b818594a..e70a5348 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java @@ -17,6 +17,34 @@ import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFor public class WasmBinaryFormatInstructionsTests { // == Exception Instructions (v3 proposal) == + @Test + public void canSerializeThrow(Snapshotter snapshotter) throws IOException, InterruptedException { + var module = WasmModule.EMPTY + .addTag(new WasmTag( + WasmTagType.EXCEPTION, + "Error1", + List.of() + )) + .addTag(new WasmTag( + WasmTagType.EXCEPTION, + "Error2", + List.of() + )) + .addFunction(new WasmFunction( + "f", + List.of(), + List.of(), + List.of(), + new WasmExpression(List.of( + new WasmThrow(new WasmTagName("Error2")) + )) + )); + + var result = serializeModule(module); + + snapshotter.assertSnapshot(result); + } + @Test public void canSerializeTryWithNoCatchBlocks(Snapshotter snapshotter) throws IOException, InterruptedException { var module = WasmModule.EMPTY -- cgit v1.2.3