Babel.Compiler.CodeGeneratingVisitor.VisitAssign C# (CSharp) Méthode

VisitAssign() public méthode

public VisitAssign ( AssignStatement assign ) : void
assign AssignStatement
Résultat void
        public override void VisitAssign(AssignStatement assign)
        {
            Argument arg = currentRoutine.GetArgument(assign.Name);
            if (arg != null) {
                if (arg.RawType.IsByRef) {
                    Type argType = arg.RawType.GetElementType();
                    ilGenerator.Emit(OpCodes.Ldarg, arg.Index);
                    assign.Value.Accept(this);
                    BoxIfNecessary(assign.Value.RawType, argType);
                    EmitStind(argType);
                }
                else {
                    assign.Value.Accept(this);
                    BoxIfNecessary(assign.Value.RawType, arg.RawType);
                    ilGenerator.Emit(OpCodes.Starg, arg.Index);
                }
            }
            else {
                LocalVariable local = localVariableStack.GetLocal(assign.Name);
                local.EmitStorePrefix(ilGenerator);
                assign.Value.Accept(this);
                BoxIfNecessary(assign.Value.RawType, local.RawType);
                local.EmitStore(ilGenerator);
            }
        }