From 4a802a8b15d967618b46cdd1d35f4497cc06000c Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Wed, 28 Sep 2022 16:02:55 +0200 Subject: [PATCH] Add support for Wat instruction `struct.set` --- src/de/inetsoftware/jwebassembly/watparser/WatParser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java index d0dec99..08b1798 100644 --- a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java +++ b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java @@ -291,6 +291,8 @@ public class WatParser extends WasmCodeBuilder { i = addMemoryInstruction( MemoryOperator.load8_u, ValueType.i32, tokens, i, lineNumber ); break; case "struct.get": + case "struct.set": + StructOperator op = "struct.get".equals( tok ) ? StructOperator.GET : StructOperator.SET; String typeName = get( tokens, ++i ); String fieldName = get( tokens, ++i ); NamedStorageType fieldNameType = null; @@ -306,7 +308,7 @@ public class WatParser extends WasmCodeBuilder { if( fieldNameType == null ) { fieldNameType = new NamedStorageType( ValueType.externref, "", fieldName ); } - addStructInstruction( StructOperator.GET, typeName, fieldNameType, javaCodePos, lineNumber ); + addStructInstruction( op, typeName, fieldNameType, javaCodePos, lineNumber ); break; case "array.len": typeName = get( tokens, ++i );