Class WasmStructInstruction
- java.lang.Object
-
- de.inetsoftware.jwebassembly.module.WasmInstruction
-
- de.inetsoftware.jwebassembly.module.WasmStructInstruction
-
class WasmStructInstruction extends WasmInstruction
WasmInstruction for struct operation. A struct is like a Java class without methods.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
WasmInstruction.Type
-
-
Field Summary
Fields Modifier and Type Field Description private NamedStorageType
fieldName
private SyntheticFunctionName
functionName
private StructOperator
op
private WasmOptions
options
private TypeManager.StructType
type
-
Constructor Summary
Constructors Constructor Description WasmStructInstruction(StructOperator op, TypeManager.StructType type, NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types)
Create an instance of numeric operation.WasmStructInstruction(StructOperator op, java.lang.String typeName, NamedStorageType fieldName, int javaCodePos, int lineNumber, TypeManager types)
Create an instance of numeric operation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) SyntheticFunctionName
createNonGcFunction()
Create the synthetic polyfill function of this instruction for nonGC mode.(package private) StructOperator
getOperator()
Get the StructOperator(package private) int
getPopCount()
Get the count of values that are removed from the stack.(package private) AnyType[]
getPopValueTypes()
(package private) AnyType
getPushValueType()
Get the ValueType if this instruction push a value on the stack.(package private) TypeManager.StructType
getStructType()
Get the struct type of this instruction.(package private) WasmInstruction.Type
getType()
Get the type of instruction(package private) void
setStructType(TypeManager.StructType type)
Set a new type for NULL const.private static java.lang.String
validJsName(AnyType type)
Get a valid JavaScript name.void
writeTo(ModuleWriter writer)
Write this instruction to the WASM module.-
Methods inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
getCodePosition, getLineNumber, setCodePosition
-
-
-
-
Field Detail
-
op
@Nonnull private final StructOperator op
-
type
private TypeManager.StructType type
-
fieldName
private final NamedStorageType fieldName
-
functionName
private SyntheticFunctionName functionName
-
options
private final WasmOptions options
-
-
Constructor Detail
-
WasmStructInstruction
WasmStructInstruction(@Nonnull StructOperator op, @Nonnull java.lang.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 Detail
-
createNonGcFunction
SyntheticFunctionName createNonGcFunction()
Create the synthetic polyfill function of this instruction for nonGC mode.- Returns:
- the function or null if not needed
-
validJsName
private static java.lang.String validJsName(AnyType type)
Get a valid JavaScript name.- Parameters:
type
- the type- Returns:
- the identifier that is valid
-
getOperator
StructOperator getOperator()
Get the StructOperator- Returns:
- the operator
-
getStructType
TypeManager.StructType getStructType()
Get the struct type of this instruction.- Returns:
- the type
-
setStructType
void setStructType(@Nonnull TypeManager.StructType type)
Set a new type for NULL const.- Parameters:
type
- the type
-
getType
WasmInstruction.Type getType()
Get the type of instruction- Specified by:
getType
in classWasmInstruction
- Returns:
- the type
-
writeTo
public void writeTo(@Nonnull ModuleWriter writer) throws java.io.IOException
Write this instruction to the WASM module.- Specified by:
writeTo
in classWasmInstruction
- Parameters:
writer
- the target writer- Throws:
java.io.IOException
- if any I/O error occur
-
getPushValueType
AnyType getPushValueType()
Get the ValueType if this instruction push a value on the stack.- Specified by:
getPushValueType
in 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:
getPopCount
in classWasmInstruction
- Returns:
- the count
-
getPopValueTypes
AnyType[] getPopValueTypes()
- Specified by:
getPopValueTypes
in classWasmInstruction
-
-