public override MSAst.Expression Reduce() {
return AstUtils.Try(
Ast.Assign(
FunctionStackVariable,
Ast.Call(
AstMethods.PushFrame,
_localContext,
_codeObject
)
),
_body
).Finally(
Ast.Call(
FunctionStackVariable,
typeof(List<FunctionStack>).GetMethod("RemoveAt"),
Ast.Add(
Ast.Property(
FunctionStackVariable,
"Count"
),
Ast.Constant(-1)
)
)
);
}