Microsoft.JScript.ASTList.TranslateToIL C# (CSharp) Method

TranslateToIL() private method

private TranslateToIL ( ILGenerator il, Type rtype ) : void
il ILGenerator
rtype System.Type
return void
      internal override void TranslateToIL(ILGenerator il, Type rtype){
        Debug.Assert(rtype.IsArray);
        Type etype = rtype.GetElementType();
        int n = this.count;
        ConstantWrapper.TranslateToILInt(il, n);
        il.Emit(OpCodes.Newarr, etype);
        bool doLdelema = etype.IsValueType && !etype.IsPrimitive;
        AST[] list = this.list;
        for (int i = 0; i < n; i++){
          il.Emit(OpCodes.Dup);
          ConstantWrapper.TranslateToILInt(il, i);
          list[i].TranslateToIL(il, etype);
          if (doLdelema)
            il.Emit(OpCodes.Ldelema, etype);
          Binding.TranslateToStelem(il, etype);
        }
      }
      

Usage Example

        internal virtual void TranslateToILPreSetPlusGet(ILGenerator il, ASTList args, bool inBrackets)
        {
            il.Emit(OpCodes.Ldnull);
            this.TranslateToIL(il, Typeob.Object);
            il.Emit(OpCodes.Dup);
            LocalBuilder local = il.DeclareLocal(Typeob.Object);

            il.Emit(OpCodes.Stloc, local);
            args.TranslateToIL(il, Typeob.ArrayOfObject);
            il.Emit(OpCodes.Dup);
            LocalBuilder builder2 = il.DeclareLocal(Typeob.ArrayOfObject);

            il.Emit(OpCodes.Stloc, builder2);
            il.Emit(OpCodes.Ldc_I4_0);
            if (inBrackets)
            {
                il.Emit(OpCodes.Ldc_I4_1);
            }
            else
            {
                il.Emit(OpCodes.Ldc_I4_0);
            }
            this.EmitILToLoadEngine(il);
            il.Emit(OpCodes.Call, CompilerGlobals.callValueMethod);
            LocalBuilder builder3 = il.DeclareLocal(Typeob.Object);

            il.Emit(OpCodes.Stloc, builder3);
            il.Emit(OpCodes.Ldloc, local);
            il.Emit(OpCodes.Ldloc, builder2);
            il.Emit(OpCodes.Ldloc, builder3);
        }
All Usage Examples Of Microsoft.JScript.ASTList::TranslateToIL