Add support for Wat instruction array.len

This commit is contained in:
Volker Berlin 2020-09-20 13:53:57 +02:00
parent 40ec79238b
commit 0290a5f8e4

View File

@ -30,6 +30,8 @@ import de.inetsoftware.jwebassembly.module.FunctionName;
import de.inetsoftware.jwebassembly.module.ValueTypeConvertion;
import de.inetsoftware.jwebassembly.module.WasmCodeBuilder;
import de.inetsoftware.jwebassembly.wasm.AnyType;
import de.inetsoftware.jwebassembly.wasm.ArrayOperator;
import de.inetsoftware.jwebassembly.wasm.ArrayType;
import de.inetsoftware.jwebassembly.wasm.MemoryOperator;
import de.inetsoftware.jwebassembly.wasm.NamedStorageType;
import de.inetsoftware.jwebassembly.wasm.NumericOperator;
@ -300,6 +302,11 @@ public class WatParser extends WasmCodeBuilder {
}
addStructInstruction( StructOperator.GET, typeName, fieldNameType, javaCodePos, lineNumber );
break;
case "array.len":
typeName = get( tokens, ++i );
AnyType type = ((ArrayType)getTypeManager().valueOf( typeName )).getArrayType();
addArrayInstruction( ArrayOperator.LEN, type, javaCodePos, lineNumber );
break;
default:
throw new WasmException( "Unknown WASM token: " + tok, lineNumber );
}