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);
}