Add a performance test for overloaded constructors.
Define separate JSIL.MethodSignature and JSIL.ConstructorSignature types that inherit from a common base class.
Move MethodSignature.Construct to ConstructorSignature.Construct
ConstructorSignature.Construct no longer takes the type to construct as an argument (it is baked into the signature object)
Method/constructor signatures are now cached the same way as types, using closures local to each type definition. This reduces the cost of fetching a cached signature and eliminates the need to cache all signatures.
Killed MethodSignatureCache and $sig.
Basic optimizations to ConstructorSignature.Construct
Introduce JSIL.GetFieldInitializer to eliminate duplicate field initializers
Don't use .apply in ConstructorSignature.Construct()
ConstructorSignature.Construct now uses a bound constructor to avoid Object.create
Remove use of .call in ConstructorSignature.Construct. It's actually faster than fast overload dispatch now.
Fix AstEmitter null reference expression when generating static constructors
Fix method/constructor signatures erroneously being cached if the declaring type was open but the arguments/return type were not
Make signature cache more precise to ensure that caching can occur in more cases.
Fix XNA ContentReader construction