public class com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode extends com.oracle.truffle.js.nodes.control.StatementNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode
  super_class: com.oracle.truffle.js.nodes.control.StatementNode
{
  private final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] globalDeclarations;
    descriptor: [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  public static final com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] EMPTY_DECLARATION_ARRAY;
    descriptor: [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  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 59
            ldc Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            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.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.$assertionsDisabled:Z
         3: .line 63
            iconst_0
            anewarray com.oracle.truffle.js.nodes.access.DeclareGlobalNode
            putstatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.EMPTY_DECLARATION_ARRAY:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] globalDeclarations
         0: .line 65
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.control.StatementNode.<init>:()V
         1: .line 66
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 67
            aload 0 /* this */
            aload 2 /* globalDeclarations */
            putfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.globalDeclarations:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
         3: .line 68
            return
        end local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] globalDeclarations
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    4     1             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     2  globalDeclarations  [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    MethodParameters:
                    Name  Flags
      context             
      globalDeclarations  

  public static com.oracle.truffle.js.nodes.JavaScriptNode create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] globalDeclarations
         0: .line 71
            new com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode
            dup
            aload 0 /* context */
            aload 1 /* globalDeclarations */
            invokespecial com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;)V
            areturn
        end local 1 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] globalDeclarations
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  globalDeclarations  [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    MethodParameters:
                    Name  Flags
      context             
      globalDeclarations  

  public static com.oracle.truffle.js.nodes.JavaScriptNode create(com.oracle.truffle.js.runtime.JSContext, java.util.List<com.oracle.truffle.js.nodes.access.DeclareGlobalNode>);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // java.util.List globalDeclarations
         0: .line 75
            aload 0 /* context */
            aload 1 /* globalDeclarations */
            getstatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.EMPTY_DECLARATION_ARRAY:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]
            invokestatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 1 // java.util.List globalDeclarations
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  globalDeclarations  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;>;
    Signature: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                    Name  Flags
      context             
      globalDeclarations  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 80
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 2 /* realm */
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         1: .line 81
            aload 0 /* this */
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.verifyDeclarations:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         2: .line 82
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.instantiateDeclarations:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/runtime/JSRealm;)V
         3: .line 83
            getstatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.EMPTY:Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    4     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1    4     2  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      frame  

  private void verifyDeclarations(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 91
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.globalDeclarations:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode com.oracle.truffle.js.runtime.JSRealm top int int com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* declaration */
        start local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode declaration
         2: .line 92
            aload 2 /* declaration */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.access.DeclareGlobalNode.verify:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)V
        end local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode declaration
         3: .line 91
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 94
            return
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    6     1        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2    3     2  declaration  Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
       Name  Flags
      realm  

  private void instantiateDeclarations(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 98
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.globalDeclarations:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 4
      StackMap locals: com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.js.runtime.JSRealm top int int com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* declaration */
        start local 3 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode declaration
         2: .line 99
            aload 3 /* declaration */
            aload 1 /* frame */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 2 /* realm */
            invokevirtual com.oracle.truffle.js.nodes.access.DeclareGlobalNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSRealm;)V
        end local 3 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode declaration
         3: .line 98
            iinc 4 1
      StackMap locals:
      StackMap stack:
         4: iload 4
            iload 5
            if_icmplt 1
         5: .line 101
            return
        end local 2 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    6     1        frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2        realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2    3     3  declaration  Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
       Name  Flags
      frame  
      realm  

  private static boolean hasLexicalDeclaration(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject globalScope
        start local 1 // java.lang.String varName
         0: .line 105
            aload 0 /* globalScope */
            aload 1 /* varName */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 2 /* desc */
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         1: .line 106
            aload 2 /* desc */
            ifnull 2
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 1 // java.lang.String varName
        end local 0 // com.oracle.truffle.api.object.DynamicObject globalScope
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  globalScope  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1      varName  Ljava/lang/String;
            1    3     2         desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      globalScope  
      varName      

  private static boolean hasRestrictedGlobalProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject globalObject
        start local 1 // java.lang.String varName
         0: .line 111
            aload 0 /* globalObject */
            aload 1 /* varName */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 2 /* desc */
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         1: .line 112
            aload 2 /* desc */
            ifnull 2
            aload 2 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 1 // java.lang.String varName
        end local 0 // com.oracle.truffle.api.object.DynamicObject globalObject
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  globalObject  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1       varName  Ljava/lang/String;
            1    3     2          desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      globalObject  
      varName       

  private static boolean canDeclareGlobalFunction(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject globalObject
        start local 1 // java.lang.String varName
         0: .line 117
            aload 0 /* globalObject */
            aload 1 /* varName */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 2 /* desc */
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         1: .line 118
            aload 2 /* desc */
            ifnull 3
            aload 2 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifne 3
            aload 2 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
            ifeq 2
            aload 2 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifeq 2
            aload 2 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifne 3
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 1 // java.lang.String varName
        end local 0 // com.oracle.truffle.api.object.DynamicObject globalObject
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0  globalObject  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1       varName  Ljava/lang/String;
            1    4     2          desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      globalObject  
      varName       

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // java.util.Set materializedTags
         0: .line 123
            new com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.globalDeclarations:[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.cloneUninitialized:([Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            invokespecial com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    1     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  private static com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] cloneUninitialized(com.oracle.truffle.js.nodes.access.DeclareGlobalNode[], java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: ([Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] members
        start local 1 // java.util.Set materializedTags
         0: .line 127
            aload 0 /* members */
            invokevirtual com.oracle.truffle.js.nodes.access.DeclareGlobalNode[].clone:()Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.DeclareGlobalNode[]
            astore 2 /* copy */
        start local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] copy
         1: .line 128
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 129
      StackMap locals: com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] int
      StackMap stack:
            aload 2 /* copy */
            iload 3 /* i */
            aload 2 /* copy */
            iload 3 /* i */
            aaload
            aload 1 /* materializedTags */
            invokevirtual com.oracle.truffle.js.nodes.access.DeclareGlobalNode.copyUninitialized:(Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            aastore
         4: .line 128
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 2 /* copy */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 131
            aload 2 /* copy */
            areturn
        end local 2 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] copy
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.access.DeclareGlobalNode[] members
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0           members  [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            0    7     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            1    7     2              copy  [Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
            2    6     3                 i  I
    Signature: ([Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)[Lcom/oracle/truffle/js/nodes/access/DeclareGlobalNode;
    MethodParameters:
                  Name  Flags
      members           
      materializedTags  

  public boolean isResultAlwaysOfType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
        start local 1 // java.lang.Class clazz
         0: .line 136
            getstatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode.EMPTY:Ljava/lang/Object;
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            ldc Lcom/oracle/truffle/js/runtime/objects/Undefined;
            if_acmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.js.nodes.access.GlobalDeclarationInstantiationNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/nodes/access/GlobalDeclarationInstantiationNode;
            0    3     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  
}
SourceFile: "GlobalDeclarationInstantiationNode.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node