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

TranslateToILObject() protected method

protected TranslateToILObject ( ILGenerator il, Type obType, bool noValue ) : void
il ILGenerator
obType Type
noValue bool
return void
      protected override void TranslateToILObject(ILGenerator il, Type obType, bool noValue){
        if (noValue && obType.IsValueType && obType != Typeob.Enum){
          if (this.temp == null)
            this.rootObject.TranslateToILReference(il, obType);
          else{
            Type tempType = Convert.ToType(this.rootObject.InferType(null));
            if (tempType == obType)
              il.Emit(OpCodes.Ldloca, this.temp);
            else{
              il.Emit(OpCodes.Ldloc, this.temp);
              Convert.Emit(this, il, tempType, obType);
              Convert.EmitLdloca(il, obType);
            }
          }
        }else{
          if (this.temp == null || this.rootObject is ThisLiteral)
            this.rootObject.TranslateToIL(il, obType);
          else{
            il.Emit(OpCodes.Ldloc, this.temp);
            Type tempType = Convert.ToType(this.rootObject.InferType(null));
            Convert.Emit(this, il, tempType, obType);
          }
        }
      }