Microsoft.JScript.Member.TranslateToILWithDupOfThisOb C# (CSharp) Method

TranslateToILWithDupOfThisOb() protected method

protected TranslateToILWithDupOfThisOb ( ILGenerator il ) : void
il ILGenerator
return void
      protected override void TranslateToILWithDupOfThisOb(ILGenerator il){
        IReflect ir = this.rootObject.InferType(null);
        Type tempType = Convert.ToType(ir);
        this.rootObject.TranslateToIL(il, tempType);
        if (ir == Typeob.Object || ir == Typeob.String || ir is TypedArray || (ir == tempType && Typeob.Array.IsAssignableFrom(tempType))){
          tempType = Typeob.Object;
          this.EmitILToLoadEngine(il);
          il.Emit(OpCodes.Call, CompilerGlobals.toObjectMethod);
        }
        il.Emit(OpCodes.Dup);
        this.temp = il.DeclareLocal(tempType);
        il.Emit(OpCodes.Stloc, temp);
        Convert.Emit(this, il, tempType, Typeob.Object);
        this.TranslateToIL(il, Typeob.Object); 
      }