Bug fix. If a ghost array is used in an invokedynamic signature, we should not use the erased method type.
Minor refactoring to prepare for class file constant pool patching.
Moved ClassFileParseOptions into ClassLoaderWrapper.
Added Unsafe.defineAnonymousClass().
Added a ClassFileParseOptions to enable trusted annotations to prepare for more of them.
Some minor DumpMethod improvements.
Don't filter DynamicMethods from stack trace if IKVM_DISABLE_STACKTRACE_CLEANING is defined.
Bug fix. Unsafe.defineClass() should allow null class loader and '/' as package separator.
Added support for CallerID in pseudo-native methods.
Added Unsafe.shouldBeInitialized() and Unsafe.defineClass() overload.
If CLASSGC is enabled, we should use a WeakReference to cache the MethodType for the MethodHandle.invoke() cache.
Bug fix. MethodHandle.invoke() cache should consider vararg-ness of the MethodHandle.
We shouldn't get the Class object for unloadable types.
De-duplicated stack walk frame skip checking code.
Use the same internal bytecode for MethodHandle.invoke() and invokeExact().
Don't try to get line number information (based on type) for methods without a declaring type.
- Removed HideFromReflectionAttribute.
- Added flags to HideFromJavaAttribute to support different levels of hiding (including the previous usage of HideFromReflectionAttribute and adding specific ability to hide from security stack walking and from stack traces, for future LamdbaForm support).
Added support for (implementation specific) LambdaForm annotations.
Removed constant MethodHandle optimization to make it easier to integrate LambdaForm.
Use standard MethodHandle combinators to throw BootstrapMethodError, instead of cheating with implementation specifics.