Class WasmArrayInstruction
- java.lang.Object
-
- de.inetsoftware.jwebassembly.module.WasmInstruction
-
- de.inetsoftware.jwebassembly.module.WasmArrayInstruction
-
class WasmArrayInstruction extends WasmInstruction
WasmInstruction for an array operation.
-
-
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 ArrayType
arrayType
private SyntheticFunctionName
functionName
private ArrayOperator
op
private AnyType
type
private TypeManager
types
-
Constructor Summary
Constructors Constructor Description WasmArrayInstruction(ArrayOperator op, AnyType type, TypeManager types, int javaCodePos, int lineNumber)
Create an instance of an array operation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) SyntheticFunctionName
createNonGcFunction(boolean useGC)
Create the synthetic function of this instruction if required for the operation.(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) WasmInstruction.Type
getType()
Get the type of instructionprivate 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 ArrayOperator op
-
type
private final AnyType type
-
arrayType
private final ArrayType arrayType
-
types
private final TypeManager types
-
functionName
private SyntheticFunctionName functionName
-
-
Constructor Detail
-
WasmArrayInstruction
WasmArrayInstruction(@Nonnull ArrayOperator op, @Nonnull AnyType type, TypeManager types, int javaCodePos, int lineNumber)
Create an instance of an array operation.- Parameters:
op
- the array operationtype
- the type of the parameterstypes
- the type managerjavaCodePos
- the code position/offset in the Java methodlineNumber
- the line number in the Java source code
-
-
Method Detail
-
createNonGcFunction
SyntheticFunctionName createNonGcFunction(boolean useGC)
Create the synthetic function of this instruction if required for the operation.- Parameters:
useGC
- true, with GC code- 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
-
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
-
-