Class WasmStructInstruction


  • class WasmStructInstruction
    extends WasmInstruction
    WasmInstruction for struct operation. A struct is like a Java class without methods.
    • 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 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 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
      • writeTo

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