protected override void EmitPreTryBody (EmitContext ec)
{
expr_copy.EmitAssign (ec, expr);
if (lock_taken != null) {
//
// Initialize ref variable
//
lock_taken.EmitAssign (ec, new BoolLiteral (false, loc));
} else {
//
// Monitor.Enter (expr_copy)
//
expr_copy.Emit (ec);
ec.Emit (OpCodes.Call, TypeManager.void_monitor_enter_object);
}
}