public class com.oracle.svm.jni.access.JNIAccessFeature implements org.graalvm.nativeimage.hosted.Feature
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.jni.access.JNIAccessFeature
  super_class: java.lang.Object
{
  private boolean sealed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.hosted.c.NativeLibraries nativeLibraries;
    descriptor: Lcom/oracle/svm/hosted/c/NativeLibraries;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod varargsCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod arrayCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod valistCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod varargsNonvirtualCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod arrayNonvirtualCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.svm.jni.hosted.JNICallTrampolineMethod valistNonvirtualCallTrampolineMethod;
    descriptor: Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0002) ACC_PRIVATE

  private int loadedConfigurations;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Set<java.lang.Class<?>> newClasses;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  private final java.util.Set<java.lang.reflect.Executable> newMethods;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/reflect/Executable;>;

  private final java.util.Map<java.lang.reflect.Field, java.lang.Boolean> newFields;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/reflect/Field;Ljava/lang/Boolean;>;

  private final java.util.Map<com.oracle.svm.jni.access.JNINativeLinkage, com.oracle.svm.jni.access.JNINativeLinkage> newLinkages;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/svm/jni/access/JNINativeLinkage;Lcom/oracle/svm/jni/access/JNINativeLinkage;>;

  private final java.util.Map<com.oracle.svm.jni.access.JNINativeLinkage, com.oracle.svm.jni.access.JNINativeLinkage> nativeLinkages;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/svm/jni/access/JNINativeLinkage;Lcom/oracle/svm/jni/access/JNINativeLinkage;>;

  private boolean haveJavaRuntimeReflectionSupport;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 80
            ldc Lcom/oracle/svm/jni/access/JNIAccessFeature;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.jni.access.JNIAccessFeature.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 87
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.jni.access.JNIAccessFeature.sealed:Z
         2: .line 98
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.newClasses:Ljava/util/Set;
         3: .line 99
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.newMethods:Ljava/util/Set;
         4: .line 100
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.svm.jni.access.JNIAccessFeature.newFields:Ljava/util/Map;
         5: .line 101
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.svm.jni.access.JNIAccessFeature.newLinkages:Ljava/util/Map;
         6: .line 103
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLinkages:Ljava/util/Map;
         7: .line 80
            return
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/svm/jni/access/JNIAccessFeature;

  public static com.oracle.svm.jni.access.JNIAccessFeature singleton();
    descriptor: ()Lcom/oracle/svm/jni/access/JNIAccessFeature;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 84
            ldc Lcom/oracle/svm/jni/access/JNIAccessFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.jni.access.JNIAccessFeature
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  private void abortIfSealed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
         0: .line 113
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.sealed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ldc "Classes, methods and fields must be registered for JNI access before the analysis has completed."
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         3: .line 114
            return
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/jni/access/JNIAccessFeature;

  public void afterRegistration(org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess arg
         0: .line 118
            aload 1 /* arg */
            checkcast com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl access
         1: .line 120
            invokestatic com.oracle.svm.jni.access.JNIReflectionDictionary.initialize:()V
         2: .line 122
            new com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl.<init>:(Lcom/oracle/svm/jni/access/JNIAccessFeature;)V
            astore 3 /* registry */
        start local 3 // com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl registry
         3: .line 123
            ldc Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;
            aload 3 /* registry */
            invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
         4: .line 125
            aload 3 /* registry */
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            invokestatic com.oracle.svm.hosted.config.ConfigurationParserUtils.create:(Lorg/graalvm/nativeimage/impl/ReflectionRegistry;Lcom/oracle/svm/hosted/ImageClassLoader;)Lcom/oracle/svm/core/configure/ReflectionConfigurationParser;
            astore 4 /* parser */
        start local 4 // com.oracle.svm.core.configure.ReflectionConfigurationParser parser
         5: .line 126
            aload 0 /* this */
            aload 4 /* parser */
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            ldc "JNI"
         6: .line 127
            getstatic com.oracle.svm.core.configure.ConfigurationFiles$Options.JNIConfigurationFiles:Lcom/oracle/svm/core/option/HostedOptionKey;
            getstatic com.oracle.svm.core.configure.ConfigurationFiles$Options.JNIConfigurationResources:Lcom/oracle/svm/core/option/HostedOptionKey;
            ldc "jni-config.json"
         7: .line 126
            invokestatic com.oracle.svm.hosted.config.ConfigurationParserUtils.parseAndRegisterConfigurations:(Lcom/oracle/svm/core/configure/ConfigurationParser;Lcom/oracle/svm/hosted/ImageClassLoader;Ljava/lang/String;Lcom/oracle/svm/core/option/HostedOptionKey;Lcom/oracle/svm/core/option/HostedOptionKey;Ljava/lang/String;)I
            putfield com.oracle.svm.jni.access.JNIAccessFeature.loadedConfigurations:I
         8: .line 128
            return
        end local 4 // com.oracle.svm.core.configure.ReflectionConfigurationParser parser
        end local 3 // com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl registry
        end local 2 // com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess arg
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0    9     1       arg  Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;
            1    9     2    access  Lcom/oracle/svm/hosted/FeatureImpl$AfterRegistrationAccessImpl;
            3    9     3  registry  Lcom/oracle/svm/jni/access/JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl;
            5    9     4    parser  Lcom/oracle/svm/core/configure/ReflectionConfigurationParser<Ljava/lang/Class<*>;>;
    MethodParameters:
      Name  Flags
      arg   

  public void beforeAnalysis(org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess arg
         0: .line 156
            aload 1 /* arg */
            checkcast com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
         1: .line 157
            aload 0 /* this */
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getNativeLibraries:()Lcom/oracle/svm/hosted/c/NativeLibraries;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
         2: .line 158
            aload 0 /* this */
            ldc Lorg/graalvm/nativeimage/impl/RuntimeReflectionSupport;
            invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
            putfield com.oracle.svm.jni.access.JNIAccessFeature.haveJavaRuntimeReflectionSupport:Z
         3: .line 160
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VARARGS:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.varargsCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         4: .line 161
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.ARRAY:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.arrayCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         5: .line 162
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VA_LIST:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.valistCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         6: .line 163
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VARARGS:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.varargsNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         7: .line 164
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.ARRAY:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.arrayNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         8: .line 165
            aload 0 /* this */
            aload 2 /* access */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VA_LIST:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.createJavaCallTrampoline:(Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            putfield com.oracle.svm.jni.access.JNIAccessFeature.valistNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
         9: .line 166
            return
        end local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess arg
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0   10     1     arg  Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;
            1   10     2  access  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
    MethodParameters:
      Name  Flags
      arg   

  private static com.oracle.svm.jni.hosted.JNICallTrampolineMethod createJavaCallTrampoline(com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl, com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant, boolean);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
        start local 1 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant variant
        start local 2 // boolean nonVirtual
         0: .line 169
            aload 0 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.getWrapped:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 3 /* wrappedMetaAccess */
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider wrappedMetaAccess
         1: .line 170
            aload 3 /* wrappedMetaAccess */
            aload 1 /* variant */
            iload 2 /* nonVirtual */
            invokestatic com.oracle.svm.jni.access.JNIAccessibleMethod.getCallWrapperField:(Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 4 /* field */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         2: .line 171
            aload 0 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaType;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         3: .line 172
            aload 0 /* access */
            aload 0 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaField;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerAsAccessed:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
         4: .line 173
            aload 3 /* wrappedMetaAccess */
            aload 1 /* variant */
            iload 2 /* nonVirtual */
            invokestatic com.oracle.svm.jni.JNIJavaCallWrappers.lookupJavaCallTrampoline:(Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 5 /* method */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaMethod method
         5: .line 174
            new com.oracle.svm.jni.hosted.JNICallTrampolineMethod
            dup
            aload 5 /* method */
            aload 4 /* field */
            iload 2 /* nonVirtual */
            invokespecial com.oracle.svm.jni.hosted.JNICallTrampolineMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
            astore 6 /* trampoline */
        start local 6 // com.oracle.svm.jni.hosted.JNICallTrampolineMethod trampoline
         6: .line 175
            aload 0 /* access */
            aload 0 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 6 /* trampoline */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.registerAsCompiled:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)V
         7: .line 176
            aload 6 /* trampoline */
            areturn
        end local 6 // com.oracle.svm.jni.hosted.JNICallTrampolineMethod trampoline
        end local 5 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider wrappedMetaAccess
        end local 2 // boolean nonVirtual
        end local 1 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant variant
        end local 0 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl access
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0             access  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            0    8     1            variant  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            0    8     2         nonVirtual  Z
            1    8     3  wrappedMetaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            2    8     4              field  Ljdk/vm/ci/meta/ResolvedJavaField;
            5    8     5             method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            6    8     6         trampoline  Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    MethodParameters:
            Name  Flags
      access      
      variant     
      nonVirtual  

  public com.oracle.svm.jni.hosted.JNICallTrampolineMethod getCallTrampolineMethod(com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant, boolean);
    descriptor: (Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;Z)Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant variant
        start local 2 // boolean nonVirtual
         0: .line 180
            aconst_null
            astore 3 /* method */
        start local 3 // com.oracle.svm.jni.hosted.JNICallTrampolineMethod method
         1: .line 181
            aload 1 /* variant */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VARARGS:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            if_acmpne 6
         2: .line 182
            iload 2 /* nonVirtual */
            ifeq 3
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.varargsNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            goto 4
      StackMap locals: com.oracle.svm.jni.hosted.JNICallTrampolineMethod
      StackMap stack:
         3: aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.varargsCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
      StackMap locals:
      StackMap stack: com.oracle.svm.jni.hosted.JNICallTrampolineMethod
         4: astore 3 /* method */
         5: .line 183
            goto 15
      StackMap locals:
      StackMap stack:
         6: aload 1 /* variant */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.ARRAY:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            if_acmpne 11
         7: .line 184
            iload 2 /* nonVirtual */
            ifeq 8
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.arrayNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.arrayCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
      StackMap locals:
      StackMap stack: com.oracle.svm.jni.hosted.JNICallTrampolineMethod
         9: astore 3 /* method */
        10: .line 185
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 1 /* variant */
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VA_LIST:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            if_acmpne 15
        12: .line 186
            iload 2 /* nonVirtual */
            ifeq 13
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.valistNonvirtualCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.valistCallTrampolineMethod:Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
      StackMap locals:
      StackMap stack: com.oracle.svm.jni.hosted.JNICallTrampolineMethod
        14: astore 3 /* method */
        15: .line 188
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.jni.access.JNIAccessFeature.$assertionsDisabled:Z
            ifne 16
            aload 3 /* method */
            ifnonnull 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* method */
            areturn
        end local 3 // com.oracle.svm.jni.hosted.JNICallTrampolineMethod method
        end local 2 // boolean nonVirtual
        end local 1 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant variant
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0   17     1     variant  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            0   17     2  nonVirtual  Z
            1   17     3      method  Lcom/oracle/svm/jni/hosted/JNICallTrampolineMethod;
    MethodParameters:
            Name  Flags
      variant     
      nonVirtual  

  public com.oracle.svm.jni.access.JNINativeLinkage makeLinkage(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/svm/jni/access/JNINativeLinkage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // java.lang.String declaringClass
        start local 2 // java.lang.String name
        start local 3 // java.lang.String descriptor
         0: .line 193
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.sealed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
         2: .line 194
      StackMap locals:
      StackMap stack: int
            ldc "All linkages for JNI calls must be created before the analysis has completed.%nOffending class: %s name: %s descriptor: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 195
            aload 1 /* declaringClass */
            aastore
            dup
            iconst_1
            aload 2 /* name */
            aastore
            dup
            iconst_2
            aload 3 /* descriptor */
            aastore
         4: .line 193
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         5: .line 197
            new com.oracle.svm.jni.access.JNINativeLinkage
            dup
            aload 1 /* declaringClass */
            aload 2 /* name */
            aload 3 /* descriptor */
            invokespecial com.oracle.svm.jni.access.JNINativeLinkage.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 4 /* key */
        start local 4 // com.oracle.svm.jni.access.JNINativeLinkage key
         6: .line 200
            getstatic com.oracle.svm.jni.access.JNIAccessFeature$Options.PrintJNIMethods:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 8
         7: .line 201
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Creating a new JNINativeLinkage: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* key */
            invokevirtual com.oracle.svm.jni.access.JNINativeLinkage.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 205
      StackMap locals: com.oracle.svm.jni.access.JNINativeLinkage
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLinkages:Ljava/util/Map;
            aload 4 /* key */
            aload 0 /* this */
            invokedynamic apply(Lcom/oracle/svm/jni/access/JNIAccessFeature;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$0(Lcom/oracle/svm/jni/access/JNINativeLinkage;)Lcom/oracle/svm/jni/access/JNINativeLinkage; (7)
                  (Lcom/oracle/svm/jni/access/JNINativeLinkage;)Lcom/oracle/svm/jni/access/JNINativeLinkage;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.oracle.svm.jni.access.JNINativeLinkage
            areturn
        end local 4 // com.oracle.svm.jni.access.JNINativeLinkage key
        end local 3 // java.lang.String descriptor
        end local 2 // java.lang.String name
        end local 1 // java.lang.String declaringClass
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0    9     1  declaringClass  Ljava/lang/String;
            0    9     2            name  Ljava/lang/String;
            0    9     3      descriptor  Ljava/lang/String;
            6    9     4             key  Lcom/oracle/svm/jni/access/JNINativeLinkage;
    MethodParameters:
                Name  Flags
      declaringClass  
      name            
      descriptor      

  private boolean wereElementsAdded();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
         0: .line 212
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newClasses:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newMethods:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newFields:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newLinkages:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/jni/access/JNIAccessFeature;

  public void duringAnalysis(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess a
         0: .line 217
            aload 1 /* a */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
         1: .line 218
            aload 0 /* this */
            invokevirtual com.oracle.svm.jni.access.JNIAccessFeature.wereElementsAdded:()Z
            ifne 3
         2: .line 219
            return
         3: .line 222
      StackMap locals: com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newClasses:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.oracle.svm.jni.access.JNIAccessFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         5: .line 223
            aload 3 /* clazz */
            aload 2 /* access */
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.addClass:(Ljava/lang/Class;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            pop
        end local 3 // java.lang.Class clazz
         6: .line 222
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 225
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newClasses:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         8: .line 227
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newMethods:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Executable
            astore 3 /* method */
        start local 3 // java.lang.reflect.Executable method
        10: .line 228
            aload 0 /* this */
            aload 3 /* method */
            aload 2 /* access */
            invokevirtual com.oracle.svm.jni.access.JNIAccessFeature.addMethod:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
        end local 3 // java.lang.reflect.Executable method
        11: .line 227
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 230
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newMethods:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        13: .line 232
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newFields:Ljava/util/Map;
            aload 2 /* access */
            invokedynamic accept(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$1(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/reflect/Field;Ljava/lang/Boolean;)V (6)
                  (Ljava/lang/reflect/Field;Ljava/lang/Boolean;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        14: .line 235
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newFields:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        15: .line 237
            invokestatic com.oracle.svm.jni.access.JNIReflectionDictionary.singleton:()Lcom/oracle/svm/jni/access/JNIReflectionDictionary;
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newLinkages:Ljava/util/Map;
            invokevirtual com.oracle.svm.jni.access.JNIReflectionDictionary.addLinkages:(Ljava/util/Map;)V
        16: .line 238
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newLinkages:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        17: .line 240
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.requireAnalysisIteration:()V
        18: .line 241
            return
        end local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess a
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0   19     1       a  Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
            1   19     2  access  Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
            5    6     3   clazz  Ljava/lang/Class<*>;
           10   11     3  method  Ljava/lang/reflect/Executable;
    MethodParameters:
      Name  Flags
      a     

  private static com.oracle.svm.jni.access.JNIAccessibleClass addClass(java.lang.Class<?>, com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
    descriptor: (Ljava/lang/Class;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class classObj
        start local 1 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
         0: .line 244
            aload 0 /* classObj */
            aload 1 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/Class;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
            ifeq 2
         1: .line 245
            aconst_null
            areturn
         2: .line 247
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.access.JNIReflectionDictionary.singleton:()Lcom/oracle/svm/jni/access/JNIReflectionDictionary;
            aload 0 /* classObj */
            aload 1 /* access */
            aload 0 /* classObj */
            invokedynamic apply(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$2(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;Ljava/lang/Class;)Lcom/oracle/svm/jni/access/JNIAccessibleClass; (6)
                  (Ljava/lang/Class;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            invokevirtual com.oracle.svm.jni.access.JNIReflectionDictionary.addClassIfAbsent:(Ljava/lang/Class;Ljava/util/function/Function;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            areturn
        end local 1 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
        end local 0 // java.lang.Class classObj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  classObj  Ljava/lang/Class<*>;
            0    3     1    access  Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
    Signature: (Ljava/lang/Class<*>;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
    MethodParameters:
          Name  Flags
      classObj  
      access    

  private void addMethod(java.lang.reflect.Executable, com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
    descriptor: (Ljava/lang/reflect/Executable;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // java.lang.reflect.Executable method
        start local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
         0: .line 259
            aload 1 /* method */
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/reflect/Executable;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
            ifeq 2
         1: .line 260
            return
         2: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.reflect.Executable.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* access */
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.addClass:(Ljava/lang/Class;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            astore 3 /* jniClass */
        start local 3 // com.oracle.svm.jni.access.JNIAccessibleClass jniClass
         3: .line 263
            aload 1 /* method */
            invokestatic com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor.of:(Ljava/lang/reflect/Executable;)Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;
            astore 4 /* descriptor */
        start local 4 // com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor descriptor
         4: .line 264
            aload 3 /* jniClass */
            aload 4 /* descriptor */
            aload 0 /* this */
            aload 2 /* access */
            aload 1 /* method */
            aload 3 /* jniClass */
            invokedynamic apply(Lcom/oracle/svm/jni/access/JNIAccessFeature;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/access/JNIAccessibleClass;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$3(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;)Lcom/oracle/svm/jni/access/JNIAccessibleMethod; (7)
                  (Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;)Lcom/oracle/svm/jni/access/JNIAccessibleMethod;
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleClass.addMethodIfAbsent:(Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;Ljava/util/function/Function;)V
         5: .line 292
            return
        end local 4 // com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor descriptor
        end local 3 // com.oracle.svm.jni.access.JNIAccessibleClass jniClass
        end local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
        end local 1 // java.lang.reflect.Executable method
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0    6     1      method  Ljava/lang/reflect/Executable;
            0    6     2      access  Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
            3    6     3    jniClass  Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            4    6     4  descriptor  Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;
    MethodParameters:
        Name  Flags
      method  
      access  

  private static void addField(java.lang.reflect.Field, boolean, com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
    descriptor: (Ljava/lang/reflect/Field;ZLcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // java.lang.reflect.Field reflField
        start local 1 // boolean writable
        start local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
         0: .line 295
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 0 /* reflField */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         1: .line 296
            aload 0 /* reflField */
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/reflect/Field;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
            ifeq 3
         2: .line 297
            return
         3: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* reflField */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* access */
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.addClass:(Ljava/lang/Class;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            astore 3 /* jniClass */
        start local 3 // com.oracle.svm.jni.access.JNIAccessibleClass jniClass
         4: .line 300
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 0 /* reflField */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
            astore 4 /* field */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisField field
         5: .line 301
            aload 3 /* jniClass */
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getName:()Ljava/lang/String;
            aload 3 /* jniClass */
            aload 4 /* field */
            invokedynamic apply(Lcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/graal/pointsto/meta/AnalysisField;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$5(Lcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljava/lang/String;)Lcom/oracle/svm/jni/access/JNIAccessibleField; (6)
                  (Ljava/lang/String;)Lcom/oracle/svm/jni/access/JNIAccessibleField;
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleClass.addFieldIfAbsent:(Ljava/lang/String;Ljava/util/function/Function;)V
         6: .line 302
            aload 4 /* field */
            aconst_null
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsRead:(Lcom/oracle/graal/pointsto/flow/MethodTypeFlow;)V
         7: .line 303
            iload 1 /* writable */
            ifeq 15
         8: .line 304
            aload 4 /* field */
            aconst_null
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsWritten:(Lcom/oracle/graal/pointsto/flow/MethodTypeFlow;)V
         9: .line 305
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getType:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 5 /* fieldType */
        start local 5 // com.oracle.graal.pointsto.meta.AnalysisType fieldType
        10: .line 306
            aload 5 /* fieldType */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
            ifeq 17
            aload 2 /* access */
            aload 5 /* fieldType */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.isReachable:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ifne 17
        11: .line 309
            aload 2 /* access */
            aload 5 /* fieldType */
            invokedynamic accept(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$6(Lcom/oracle/graal/pointsto/meta/AnalysisType;Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V (6)
                  (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 310
            aload 5 /* fieldType */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getElementalType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast com.oracle.graal.pointsto.meta.AnalysisType
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            aastore
        13: .line 309
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.registerReachabilityHandler:(Ljava/util/function/Consumer;[Ljava/lang/Object;)V
        end local 5 // com.oracle.graal.pointsto.meta.AnalysisType fieldType
        14: .line 312
            goto 17
      StackMap locals: com.oracle.svm.jni.access.JNIAccessibleClass com.oracle.graal.pointsto.meta.AnalysisField
      StackMap stack:
        15: aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isStatic:()Z
            ifeq 17
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isFinal:()Z
            ifeq 17
        16: .line 313
            invokestatic com.oracle.svm.hosted.meta.MaterializedConstantFields.singleton:()Lcom/oracle/svm/hosted/meta/MaterializedConstantFields;
            aload 4 /* field */
            invokevirtual com.oracle.svm.hosted.meta.MaterializedConstantFields.register:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
        17: .line 317
      StackMap locals:
      StackMap stack:
            aload 2 /* access */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            astore 5 /* bigBang */
        start local 5 // com.oracle.graal.pointsto.BigBang bigBang
        18: .line 318
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getType:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            aload 5 /* bigBang */
            iconst_1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getTypeFlow:(Lcom/oracle/graal/pointsto/BigBang;Z)Lcom/oracle/graal/pointsto/flow/AllInstantiatedTypeFlow;
            astore 6 /* declaredTypeFlow */
        start local 6 // com.oracle.graal.pointsto.flow.TypeFlow declaredTypeFlow
        19: .line 319
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isStatic:()Z
            ifeq 22
        20: .line 320
            aload 6 /* declaredTypeFlow */
            aload 5 /* bigBang */
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getStaticFieldFlow:()Lcom/oracle/graal/pointsto/flow/FieldTypeFlow;
            invokevirtual com.oracle.graal.pointsto.flow.TypeFlow.addUse:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/flow/TypeFlow;)Z
            pop
        21: .line 321
            goto 24
        22: .line 322
      StackMap locals: com.oracle.graal.pointsto.BigBang com.oracle.graal.pointsto.flow.TypeFlow
      StackMap stack:
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getContextInsensitiveAnalysisObject:()Lcom/oracle/graal/pointsto/flow/context/object/AnalysisObject;
            aload 5 /* bigBang */
            aload 4 /* field */
            iload 1 /* writable */
            invokevirtual com.oracle.graal.pointsto.flow.context.object.AnalysisObject.getInstanceFieldFlow:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisField;Z)Lcom/oracle/graal/pointsto/flow/FieldTypeFlow;
            astore 7 /* instanceFieldFlow */
        start local 7 // com.oracle.graal.pointsto.flow.FieldTypeFlow instanceFieldFlow
        23: .line 323
            aload 6 /* declaredTypeFlow */
            aload 5 /* bigBang */
            aload 7 /* instanceFieldFlow */
            invokevirtual com.oracle.graal.pointsto.flow.TypeFlow.addUse:(Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/flow/TypeFlow;)Z
            pop
        end local 7 // com.oracle.graal.pointsto.flow.FieldTypeFlow instanceFieldFlow
        24: .line 325
      StackMap locals:
      StackMap stack:
            return
        end local 6 // com.oracle.graal.pointsto.flow.TypeFlow declaredTypeFlow
        end local 5 // com.oracle.graal.pointsto.BigBang bigBang
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisField field
        end local 3 // com.oracle.svm.jni.access.JNIAccessibleClass jniClass
        end local 2 // com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl access
        end local 1 // boolean writable
        end local 0 // java.lang.reflect.Field reflField
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0          reflField  Ljava/lang/reflect/Field;
            0   25     1           writable  Z
            0   25     2             access  Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
            4   25     3           jniClass  Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            5   25     4              field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
           10   14     5          fieldType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
           18   25     5            bigBang  Lcom/oracle/graal/pointsto/BigBang;
           19   25     6   declaredTypeFlow  Lcom/oracle/graal/pointsto/flow/TypeFlow<*>;
           23   24     7  instanceFieldFlow  Lcom/oracle/graal/pointsto/flow/FieldTypeFlow;
    MethodParameters:
           Name  Flags
      reflField  
      writable   
      access     

  public void afterAnalysis(org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
         0: .line 329
            aload 0 /* this */
            iconst_1
            putfield com.oracle.svm.jni.access.JNIAccessFeature.sealed:Z
         1: .line 330
            aload 0 /* this */
            invokevirtual com.oracle.svm.jni.access.JNIAccessFeature.wereElementsAdded:()Z
            ifeq 3
         2: .line 331
            aload 0 /* this */
            invokevirtual com.oracle.svm.jni.access.JNIAccessFeature.abortIfSealed:()V
         3: .line 333
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0    4     1  access  Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;
    MethodParameters:
        Name  Flags
      access  

  public void beforeCompilation(org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess a
         0: .line 337
            ldc Lcom/oracle/svm/hosted/FallbackFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
            ifeq 4
         1: .line 338
            ldc Lcom/oracle/svm/hosted/FallbackFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.FallbackFeature
            getfield com.oracle.svm.hosted.FallbackFeature.jniFallback:Lcom/oracle/svm/hosted/FallbackFeature$FallbackImageRequest;
            astore 2 /* jniFallback */
        start local 2 // com.oracle.svm.hosted.FallbackFeature$FallbackImageRequest jniFallback
         2: .line 339
            aload 2 /* jniFallback */
            ifnull 4
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.loadedConfigurations:I
            ifne 4
         3: .line 340
            aload 2 /* jniFallback */
            athrow
        end local 2 // com.oracle.svm.hosted.FallbackFeature$FallbackImageRequest jniFallback
         4: .line 344
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            checkcast com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl
            astore 2 /* access */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl access
         5: .line 345
            invokestatic com.oracle.svm.jni.access.JNIReflectionDictionary.singleton:()Lcom/oracle/svm/jni/access/JNIReflectionDictionary;
            invokevirtual com.oracle.svm.jni.access.JNIReflectionDictionary.getClasses:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: com.oracle.svm.jni.access.JNIAccessFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.jni.access.JNIAccessibleClass
            astore 3 /* clazz */
        start local 3 // com.oracle.svm.jni.access.JNIAccessibleClass clazz
         7: .line 346
            aload 3 /* clazz */
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleClass.getFields:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.oracle.svm.jni.access.JNIAccessFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl com.oracle.svm.jni.access.JNIAccessibleClass java.util.Iterator top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.jni.access.JNIAccessibleField
            astore 5 /* field */
        start local 5 // com.oracle.svm.jni.access.JNIAccessibleField field
         9: .line 347
            aload 5 /* field */
            aload 2 /* access */
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleField.finishBeforeCompilation:(Lcom/oracle/svm/hosted/FeatureImpl$CompilationAccessImpl;)V
        end local 5 // com.oracle.svm.jni.access.JNIAccessibleField field
        10: .line 346
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 349
            aload 3 /* clazz */
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleClass.getMethods:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.jni.access.JNIAccessibleMethod
            astore 5 /* method */
        start local 5 // com.oracle.svm.jni.access.JNIAccessibleMethod method
        13: .line 350
            aload 5 /* method */
            aload 2 /* access */
            invokevirtual com.oracle.svm.jni.access.JNIAccessibleMethod.finishBeforeCompilation:(Lcom/oracle/svm/hosted/FeatureImpl$CompilationAccessImpl;)V
        14: .line 351
            aload 2 /* access */
            aload 5 /* method */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl.registerAsImmutable:(Ljava/lang/Object;)V
        end local 5 // com.oracle.svm.jni.access.JNIAccessibleMethod method
        15: .line 349
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 3 // com.oracle.svm.jni.access.JNIAccessibleClass clazz
        16: .line 345
      StackMap locals: com.oracle.svm.jni.access.JNIAccessFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        17: .line 354
            return
        end local 2 // com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl access
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess a
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0   18     1            a  Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;
            2    4     2  jniFallback  Lcom/oracle/svm/hosted/FallbackFeature$FallbackImageRequest;
            5   18     2       access  Lcom/oracle/svm/hosted/FeatureImpl$CompilationAccessImpl;
            7   16     3        clazz  Lcom/oracle/svm/jni/access/JNIAccessibleClass;
            9   10     5        field  Lcom/oracle/svm/jni/access/JNIAccessibleField;
           13   15     5       method  Lcom/oracle/svm/jni/access/JNIAccessibleMethod;
    MethodParameters:
      Name  Flags
      a     

  public boolean haveJavaRuntimeReflectionSupport();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
         0: .line 358
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.haveJavaRuntimeReflectionSupport:Z
            ireturn
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  private com.oracle.svm.jni.access.JNINativeLinkage lambda$0(com.oracle.svm.jni.access.JNINativeLinkage);
    descriptor: (Lcom/oracle/svm/jni/access/JNINativeLinkage;)Lcom/oracle/svm/jni/access/JNINativeLinkage;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 1 // com.oracle.svm.jni.access.JNINativeLinkage linkage
         0: .line 206
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.newLinkages:Ljava/util/Map;
            aload 1 /* linkage */
            aload 1 /* linkage */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 207
            aload 1 /* linkage */
            areturn
        end local 1 // com.oracle.svm.jni.access.JNINativeLinkage linkage
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0    2     1  linkage  Lcom/oracle/svm/jni/access/JNINativeLinkage;

  private static void lambda$1(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.lang.reflect.Field, java.lang.Boolean);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/reflect/Field;Ljava/lang/Boolean;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // java.lang.reflect.Field field
        start local 2 // java.lang.Boolean writable
         0: .line 233
            aload 1 /* field */
            aload 2 /* writable */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            aload 0
            invokestatic com.oracle.svm.jni.access.JNIAccessFeature.addField:(Ljava/lang/reflect/Field;ZLcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
         1: .line 234
            return
        end local 2 // java.lang.Boolean writable
        end local 1 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     1     field  Ljava/lang/reflect/Field;
            0    2     2  writable  Ljava/lang/Boolean;

  private static com.oracle.svm.jni.access.JNIAccessibleClass lambda$2(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.lang.Class, java.lang.Class);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;Ljava/lang/Class;)Lcom/oracle/svm/jni/access/JNIAccessibleClass;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 2 // java.lang.Class c
         0: .line 248
            aload 0
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 3 /* analysisClass */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType analysisClass
         1: .line 249
            aload 3 /* analysisClass */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isInterface:()Z
            ifne 2
            aload 3 /* analysisClass */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isInstanceClass:()Z
            ifeq 4
            aload 3 /* analysisClass */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isAbstract:()Z
            ifeq 4
         2: .line 250
      StackMap locals: com.oracle.graal.pointsto.meta.AnalysisType
      StackMap stack:
            aload 3 /* analysisClass */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         3: .line 251
            goto 5
         4: .line 252
      StackMap locals:
      StackMap stack:
            aload 3 /* analysisClass */
            aconst_null
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsAllocated:(Lorg/graalvm/compiler/graph/Node;)V
         5: .line 254
      StackMap locals:
      StackMap stack:
            new com.oracle.svm.jni.access.JNIAccessibleClass
            dup
            aload 1
            invokespecial com.oracle.svm.jni.access.JNIAccessibleClass.<init>:(Ljava/lang/Class;)V
            areturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType analysisClass
        end local 2 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     2              c  Ljava/lang/Class<*>;
            1    6     3  analysisClass  Lcom/oracle/graal/pointsto/meta/AnalysisType;

  private com.oracle.svm.jni.access.JNIAccessibleMethod lambda$3(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.lang.reflect.Executable, com.oracle.svm.jni.access.JNIAccessibleClass, com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;)Lcom/oracle/svm/jni/access/JNIAccessibleMethod;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=11, locals=15, args_size=5
        start local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
        start local 4 // com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor d
         0: .line 265
            aload 1
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.getWrapped:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 5 /* wrappedMetaAccess */
        start local 5 // jdk.vm.ci.meta.MetaAccessProvider wrappedMetaAccess
         1: .line 267
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VARARGS:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 6 /* varargsCallWrapper */
        start local 6 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod varargsCallWrapper
         2: .line 268
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.ARRAY:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 7 /* arrayCallWrapper */
        start local 7 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod arrayCallWrapper
         3: .line 269
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VA_LIST:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_0
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 8 /* valistCallWrapper */
        start local 8 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod valistCallWrapper
         4: .line 270
            iconst_3
            anewarray com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            iconst_0
            aload 6 /* varargsCallWrapper */
            aastore
            dup
            iconst_1
            aload 7 /* arrayCallWrapper */
            aastore
            dup
            iconst_2
            aload 8 /* valistCallWrapper */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            astore 9 /* wrappers */
        start local 9 // java.util.stream.Stream wrappers
         5: .line 272
            aconst_null
            astore 10 /* varargsNonvirtualCallWrapper */
        start local 10 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod varargsNonvirtualCallWrapper
         6: .line 273
            aconst_null
            astore 11 /* arrayNonvirtualCallWrapper */
        start local 11 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod arrayNonvirtualCallWrapper
         7: .line 274
            aconst_null
            astore 12 /* valistNonvirtualCallWrapper */
        start local 12 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod valistNonvirtualCallWrapper
         8: .line 275
            aload 2
            invokevirtual java.lang.reflect.Executable.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 13
            aload 2
            invokevirtual java.lang.reflect.Executable.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 13
         9: .line 276
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VARARGS:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 10 /* varargsNonvirtualCallWrapper */
        10: .line 277
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.ARRAY:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 11 /* arrayNonvirtualCallWrapper */
        11: .line 278
            new com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            aload 2
            getstatic com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant.VA_LIST:Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;
            iconst_1
            aload 5 /* wrappedMetaAccess */
            aload 0 /* this */
            getfield com.oracle.svm.jni.access.JNIAccessFeature.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            invokespecial com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod.<init>:(Ljava/lang/reflect/Executable;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod$CallVariant;ZLjdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
            astore 12 /* valistNonvirtualCallWrapper */
        12: .line 279
            aload 9 /* wrappers */
            iconst_3
            anewarray com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
            dup
            iconst_0
            aload 10 /* varargsNonvirtualCallWrapper */
            aastore
            dup
            iconst_1
            aload 11 /* arrayNonvirtualCallWrapper */
            aastore
            dup
            iconst_2
            aload 12 /* valistNonvirtualCallWrapper */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            astore 9 /* wrappers */
        13: .line 282
      StackMap locals: com.oracle.svm.jni.access.JNIAccessFeature com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.reflect.Executable com.oracle.svm.jni.access.JNIAccessibleClass com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod java.util.stream.Stream com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
      StackMap stack:
            new com.oracle.svm.jni.access.JNIAccessibleMethod
            dup
            aload 4 /* d */
            aload 2
            invokevirtual java.lang.reflect.Executable.getModifiers:()I
            aload 3
            aload 6 /* varargsCallWrapper */
            aload 7 /* arrayCallWrapper */
            aload 8 /* valistCallWrapper */
        14: .line 283
            aload 10 /* varargsNonvirtualCallWrapper */
            aload 11 /* arrayNonvirtualCallWrapper */
            aload 12 /* valistNonvirtualCallWrapper */
        15: .line 282
            invokespecial com.oracle.svm.jni.access.JNIAccessibleMethod.<init>:(Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;ILcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;)V
            astore 13 /* jniMethod */
        start local 13 // com.oracle.svm.jni.access.JNIAccessibleMethod jniMethod
        16: .line 284
            invokestatic com.oracle.svm.hosted.code.CEntryPointData.createCustomUnpublished:()Lcom/oracle/svm/hosted/code/CEntryPointData;
            astore 14 /* unpublished */
        start local 14 // com.oracle.svm.hosted.code.CEntryPointData unpublished
        17: .line 285
            aload 9 /* wrappers */
            aload 1
            aload 14 /* unpublished */
            invokedynamic accept(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Lcom/oracle/svm/hosted/code/CEntryPointData;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/svm/jni/access/JNIAccessFeature.lambda$4(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Lcom/oracle/svm/hosted/code/CEntryPointData;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;)V (6)
                  (Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        18: .line 290
            aload 13 /* jniMethod */
            areturn
        end local 14 // com.oracle.svm.hosted.code.CEntryPointData unpublished
        end local 13 // com.oracle.svm.jni.access.JNIAccessibleMethod jniMethod
        end local 12 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod valistNonvirtualCallWrapper
        end local 11 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod arrayNonvirtualCallWrapper
        end local 10 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod varargsNonvirtualCallWrapper
        end local 9 // java.util.stream.Stream wrappers
        end local 8 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod valistCallWrapper
        end local 7 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod arrayCallWrapper
        end local 6 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod varargsCallWrapper
        end local 5 // jdk.vm.ci.meta.MetaAccessProvider wrappedMetaAccess
        end local 4 // com.oracle.svm.jni.access.JNIAccessibleMethodDescriptor d
        end local 0 // com.oracle.svm.jni.access.JNIAccessFeature this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   19     0                          this  Lcom/oracle/svm/jni/access/JNIAccessFeature;
            0   19     4                             d  Lcom/oracle/svm/jni/access/JNIAccessibleMethodDescriptor;
            1   19     5             wrappedMetaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            2   19     6            varargsCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            3   19     7              arrayCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            4   19     8             valistCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            5   19     9                      wrappers  Ljava/util/stream/Stream<Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;>;
            6   19    10  varargsNonvirtualCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            7   19    11    arrayNonvirtualCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            8   19    12   valistNonvirtualCallWrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
           16   19    13                     jniMethod  Lcom/oracle/svm/jni/access/JNIAccessibleMethod;
           17   19    14                   unpublished  Lcom/oracle/svm/hosted/code/CEntryPointData;

  private static com.oracle.svm.jni.access.JNIAccessibleField lambda$5(com.oracle.svm.jni.access.JNIAccessibleClass, com.oracle.graal.pointsto.meta.AnalysisField, java.lang.String);
    descriptor: (Lcom/oracle/svm/jni/access/JNIAccessibleClass;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljava/lang/String;)Lcom/oracle/svm/jni/access/JNIAccessibleField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=3
        start local 2 // java.lang.String name
         0: .line 301
            new com.oracle.svm.jni.access.JNIAccessibleField
            dup
            aload 0
            aload 2 /* name */
            aload 1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getModifiers:()I
            invokespecial com.oracle.svm.jni.access.JNIAccessibleField.<init>:(Lcom/oracle/svm/jni/access/JNIAccessibleClass;Ljava/lang/String;Ljdk/vm/ci/meta/JavaKind;I)V
            areturn
        end local 2 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2  name  Ljava/lang/String;

  private static void lambda$6(com.oracle.graal.pointsto.meta.AnalysisType, org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisType;Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess a
         0: .line 309
            aload 0
            aconst_null
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsAllocated:(Lorg/graalvm/compiler/graph/Node;)V
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     a  Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;

  private static void lambda$4(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, com.oracle.svm.hosted.code.CEntryPointData, com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod);
    descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Lcom/oracle/svm/hosted/code/CEntryPointData;Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 2 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod wrapper
         0: .line 286
            aload 0
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 2 /* wrapper */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            astore 3 /* analysisWrapper */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod analysisWrapper
         1: .line 287
            aload 0
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            aload 3 /* analysisWrapper */
            invokevirtual com.oracle.graal.pointsto.BigBang.addRootMethod:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            pop
         2: .line 288
            aload 3 /* analysisWrapper */
            aload 1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.registerAsEntryPoint:(Ljava/lang/Object;)V
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod analysisWrapper
         3: .line 289
            return
        end local 2 // com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod wrapper
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     2          wrapper  Lcom/oracle/svm/jni/hosted/JNIJavaCallWrapperMethod;
            1    3     3  analysisWrapper  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
}
SourceFile: "JNIAccessFeature.java"
NestMembers:
  com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl  com.oracle.svm.jni.access.JNIAccessFeature$Options
InnerClasses:
  public final Options = com.oracle.svm.core.configure.ConfigurationFiles$Options of com.oracle.svm.core.configure.ConfigurationFiles
  public abstract JNIRuntimeAccessibilitySupport = com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport of com.oracle.svm.core.jni.JNIRuntimeAccess
  public AfterRegistrationAccessImpl = com.oracle.svm.hosted.FeatureImpl$AfterRegistrationAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public BeforeAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public CompilationAccessImpl = com.oracle.svm.hosted.FeatureImpl$CompilationAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public DuringAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  private JNIRuntimeAccessibilitySupportImpl = com.oracle.svm.jni.access.JNIAccessFeature$JNIRuntimeAccessibilitySupportImpl of com.oracle.svm.jni.access.JNIAccessFeature
  public Options = com.oracle.svm.jni.access.JNIAccessFeature$Options of com.oracle.svm.jni.access.JNIAccessFeature
  public final CallVariant = com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod$CallVariant of com.oracle.svm.jni.hosted.JNIJavaCallWrapperMethod
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract AfterAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract AfterRegistrationAccess = org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract BeforeAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract BeforeCompilationAccess = org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract DuringAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess of org.graalvm.nativeimage.hosted.Feature