Jurassic.Compiler.DynamicILGenerator.LoadArrayElement C# (CSharp) Method

LoadArrayElement() public method

Pops the array and index off the stack and pushes the element value onto the stack.
public LoadArrayElement ( Type type ) : void
type System.Type The element type.
return void
        public override void LoadArrayElement(Type type)
        {
            if (type == null)
                throw new ArgumentNullException("type");

            switch (Type.GetTypeCode(type))
            {
                case TypeCode.SByte:
                    Emit1ByteOpCode(0x90, 2, 1);
                    break;
                case TypeCode.Int16:
                    Emit1ByteOpCode(0x92, 2, 1);
                    break;
                case TypeCode.Int32:
                    Emit1ByteOpCode(0x94, 2, 1);
                    break;
                case TypeCode.Int64:
                    Emit1ByteOpCode(0x96, 2, 1);
                    break;
                case TypeCode.Byte:
                    Emit1ByteOpCode(0x91, 2, 1);
                    break;
                case TypeCode.UInt16:
                    Emit1ByteOpCode(0x93, 2, 1);
                    break;
                case TypeCode.UInt32:
                    Emit1ByteOpCode(0x95, 2, 1);
                    break;
                case TypeCode.UInt64:
                    Emit1ByteOpCode(0x96, 2, 1);
                    break;
                case TypeCode.Single:
                    Emit1ByteOpCode(0x98, 2, 1);
                    break;
                case TypeCode.Double:
                    Emit1ByteOpCode(0x99, 2, 1);
                    break;
                default:
                    if (type.IsClass == true)
                        Emit1ByteOpCode(0x9A, 2, 1);
                    else
                    {
                        int token = this.GetToken(type);
                        Emit1ByteOpCodeInt32(0xA3, 2, 1, token);
                    }
                    break;
            }

            PopStackOperands(VESType.Object, VESType.Int32);
            PushStackOperand(ToVESType(type));
        }
DynamicILGenerator