Class WasmStructInstruction
java.lang.Object
de.inetsoftware.jwebassembly.module.WasmInstruction
de.inetsoftware.jwebassembly.module.WasmStructInstruction
WasmInstruction for struct operation. A struct is like a Java class without methods.
-
Nested Class Summary
Nested classes/interfaces inherited from class WasmInstruction
WasmInstruction.Type -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final NamedStorageTypeprivate SyntheticFunctionNameprivate final StructOperatorprivate final WasmOptionsprivate TypeManager.StructType -
Constructor Summary
ConstructorsConstructorDescriptionWasmStructInstruction(StructOperator op, TypeManager.StructType type, NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types) Create an instance of numeric operation.WasmStructInstruction(StructOperator op, String typeName, NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types) Create an instance of numeric operation. -
Method Summary
Modifier and TypeMethodDescription(package private) SyntheticFunctionNameCreate the synthetic polyfill function of this instruction for nonGC mode.(package private) StructOperatorGet the StructOperator(package private) intGet the count of values that are removed from the stack.(package private) AnyType[](package private) AnyTypeGet the ValueType if this instruction push a value on the stack.(package private) TypeManager.StructTypeGet the struct type of this instruction.(package private) WasmInstruction.TypegetType()Get the type of instruction(package private) voidSet a new type for NULL const.private static StringvalidJsName(AnyType type) Get a valid JavaScript name.voidwriteTo(ModuleWriter writer) Write this instruction to the WASM module.Methods inherited from class WasmInstruction
getCodePosition, getLineNumber, setCodePosition
-
Field Details
-
op
-
type
-
fieldName
-
functionName
-
options
-
-
Constructor Details
-
WasmStructInstruction
WasmStructInstruction(@Nonnull StructOperator op, @Nonnull String typeName, @Nullable NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types) Create an instance of numeric operation.- Parameters:
op- the struct operationtypeName- the type name of the parametersfieldName- the name of field if needed for the operationjavaCodePos- the code position/offset in the Java methodlineNumber- the line number in the Java source codetypes- the type manager
-
WasmStructInstruction
WasmStructInstruction(@Nonnull StructOperator op, @Nonnull TypeManager.StructType type, @Nullable NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types) Create an instance of numeric operation.- Parameters:
op- the struct operationtype- the type of the parametersfieldName- the name of field if needed for the operationjavaCodePos- the code position/offset in the Java methodlineNumber- the line number in the Java source codetypes- the type manager
-
-
Method Details
-
createNonGcFunction
SyntheticFunctionName createNonGcFunction()Create the synthetic polyfill function of this instruction for nonGC mode.- Returns:
- the function or null if not needed
-
validJsName
-
getOperator
-
getStructType
-
setStructType
Set a new type for NULL const.- Parameters:
type- the type
-
getType
WasmInstruction.Type getType()Get the type of instruction- Specified by:
getTypein classWasmInstruction- Returns:
- the type
-
writeTo
Write this instruction to the WASM module.- Specified by:
writeToin classWasmInstruction- Parameters:
writer- the target writer- Throws:
IOException- if any I/O error occur
-
getPushValueType
AnyType getPushValueType()Get the ValueType if this instruction push a value on the stack.- Specified by:
getPushValueTypein classWasmInstruction- Returns:
- the ValueType or null if no value is push
-
getPopCount
int getPopCount()Get the count of values that are removed from the stack.- Specified by:
getPopCountin classWasmInstruction- Returns:
- the count
-
getPopValueTypes
AnyType[] getPopValueTypes()- Specified by:
getPopValueTypesin classWasmInstruction
-