protected override ICode VisitNewObj(ExprNewObj e) {
var isDelegate = e.CallMethod.DeclaringType.EnumThisAllBaseTypes().Any(x => x.IsDelegate());
if (isDelegate) {
var ctx = e.Ctx;
var mRef = ((ExprMethodReference)e.Args.ElementAt(1)).Method;
var obj = mRef.HasThis ? e.Args.ElementAt(0) : null;
return new ExprJsDelegateCtor(ctx, e.Type, obj, mRef);
} else {
return base.VisitNewObj(e);
}
}