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

TranslateToIL() private method

private TranslateToIL ( ILGenerator il, Type rtype ) : void
il System.Reflection.Emit.ILGenerator
rtype System.Type
return void
      internal override void TranslateToIL(ILGenerator il, Type rtype){
        if (rtype == Typeob.Void) return;
        IReflect ir = this.InferType(null);
        if (ir is GlobalScope){
          this.EmitILToLoadEngine(il);
          if (rtype == Typeob.LenientGlobalObject)
            il.Emit(OpCodes.Call, CompilerGlobals.getLenientGlobalObjectMethod);
          else{
            il.Emit(OpCodes.Call, CompilerGlobals.scriptObjectStackTopMethod);
            il.Emit(OpCodes.Castclass, Typeob.IActivationObject);
            il.Emit(OpCodes.Callvirt, CompilerGlobals.getDefaultThisObjectMethod);
          }
          return;
        }
        il.Emit(OpCodes.Ldarg_0);
        Convert.Emit(this, il, Convert.ToType(this.InferType(null)), rtype);
      }