Skip to main content

Class If

Represents "if" instruction.

Assembly: WaaS.Core.dll​
Declaration
[OpCode(4)]
public class If : BlockInstruction

Inheritance: System.Object -> WaaS.Models.Instruction -> WaaS.Models.BlockInstruction

Properties​

Arity​

View Source​
Declaration
public override uint Arity { get; }

Else​

View Source​
Declaration
public Else Else { get; }

Methods​

PreValidateStackState(in ValidationContext)​

Get the number of values to pop and push from the stack to validate stack depth.

View Source​
Declaration
public override (uint popCount, uint pushCount) PreValidateStackState(in ValidationContext context)
Returns​

System.ValueTuple<System.UInt32,System.UInt32>

Parameters​
TypeName
WaaS.Models.ValidationContextcontext

ValidateStackState(in ValidationContext, ref ValidationBlockStackState)​

Simulates stack operations to validate the stack state.

View Source​
Declaration
public override void ValidateStackState(in ValidationContext context, ref ValidationBlockStackState stackState)
Parameters​
TypeName
WaaS.Models.ValidationContextcontext
WaaS.Models.ValidationBlockStackStatestackState

OnBeforeBlockEnter(WasmStackFrame, out uint)​

View Source​
Declaration
protected override void OnBeforeBlockEnter(WasmStackFrame current, out uint continuationIndex)
Parameters​
TypeName
WaaS.Runtime.WasmStackFramecurrent
System.UInt32continuationIndex

InjectDelimiter(BlockDelimiterInstruction)​

View Source​
Declaration
public override void InjectDelimiter(BlockDelimiterInstruction delimiter)
Parameters​
TypeName
WaaS.Models.BlockDelimiterInstructiondelimiter