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.
  • Field Details

  • 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 operation
      typeName - the type name of the parameters
      fieldName - the name of field if needed for the operation
      javaCodePos - the code position/offset in the Java method
      lineNumber - the line number in the Java source code
      types - 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 operation
      type - the type of the parameters
      fieldName - the name of field if needed for the operation
      javaCodePos - the code position/offset in the Java method
      lineNumber - the line number in the Java source code
      types - 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

      private static 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

      Get the type of instruction
      Specified by:
      getType in class WasmInstruction
      Returns:
      the type
    • writeTo

      public void writeTo(@Nonnull ModuleWriter writer) throws IOException
      Write this instruction to the WASM module.
      Specified by:
      writeTo in class WasmInstruction
      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:
      getPushValueType in class WasmInstruction
      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 class WasmInstruction
      Returns:
      the count
    • getPopValueTypes

      AnyType[] getPopValueTypes()
      Specified by:
      getPopValueTypes in class WasmInstruction