final class com.oracle.truffle.polyglot.DefaultScope
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.DefaultScope
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.DefaultScope this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.polyglot.DefaultScope this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/DefaultScope;

  private static boolean isInternal(com.oracle.truffle.api.frame.FrameSlot);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameSlot;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.frame.FrameSlot slot
         0: .line 71
            aload 0 /* slot */
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            astore 1 /* identifier */
        start local 1 // java.lang.Object identifier
         1: .line 72
            aload 1 /* identifier */
            ifnonnull 3
         2: .line 73
            iconst_1
            ireturn
         3: .line 75
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* identifier */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.isInputValueSlotIdentifier:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 76
            iconst_1
            ireturn
         5: .line 78
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object identifier
        end local 0 // com.oracle.truffle.api.frame.FrameSlot slot
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        slot  Lcom/oracle/truffle/api/frame/FrameSlot;
            1    6     1  identifier  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      slot  

  static  getVariables(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.frame.Frame, java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.RootNode root
        start local 1 // com.oracle.truffle.api.frame.Frame frame
        start local 2 // java.lang.Class language
         0: .line 84
            aload 1 /* frame */
            ifnonnull 3
         1: .line 85
            aload 0 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSlots:()Ljava/util/List;
            astore 3 /* slots */
        start local 3 // java.util.List slots
         2: .line 86
            goto 20
        end local 3 // java.util.List slots
         3: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.getSlots:()Ljava/util/List;
            astore 3 /* slots */
        start local 3 // java.util.List slots
         4: .line 89
            aconst_null
            astore 4 /* nonNulls */
        start local 4 // java.util.List nonNulls
         5: .line 90
            iconst_0
            istore 5 /* lastI */
        start local 5 // int lastI
         6: .line 91
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 15
         8: .line 92
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.Frame java.lang.Class java.util.List java.util.List int int
      StackMap stack:
            aload 3 /* slots */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot
            astore 7 /* slot */
        start local 7 // com.oracle.truffle.api.frame.FrameSlot slot
         9: .line 93
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INTEROP:Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
            aload 1 /* frame */
            aload 7 /* slot */
            invokeinterface com.oracle.truffle.api.frame.Frame.getValue:(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.isInteropType:(Ljava/lang/Object;)Z
            ifeq 10
            aload 7 /* slot */
            invokestatic com.oracle.truffle.polyglot.DefaultScope.isInternal:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
            ifeq 14
        10: .line 94
      StackMap locals: com.oracle.truffle.api.frame.FrameSlot
      StackMap stack:
            aload 4 /* nonNulls */
            ifnonnull 12
        11: .line 95
            new java.util.ArrayList
            dup
            aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* nonNulls */
        12: .line 97
      StackMap locals:
      StackMap stack:
            aload 4 /* nonNulls */
            aload 3 /* slots */
            iload 5 /* lastI */
            iload 6 /* i */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        13: .line 98
            iload 6 /* i */
            iconst_1
            iadd
            istore 5 /* lastI */
        end local 7 // com.oracle.truffle.api.frame.FrameSlot slot
        14: .line 91
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 6 // int i
        16: .line 101
            aload 4 /* nonNulls */
            ifnull 20
        17: .line 102
            iload 5 /* lastI */
            aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            if_icmpge 19
        18: .line 103
            aload 4 /* nonNulls */
            aload 3 /* slots */
            iload 5 /* lastI */
            aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        19: .line 105
      StackMap locals:
      StackMap stack:
            aload 4 /* nonNulls */
            astore 3 /* slots */
        end local 5 // int lastI
        end local 4 // java.util.List nonNulls
        20: .line 109
      StackMap locals:
      StackMap stack:
            aload 3 /* slots */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 23
        21: .line 110
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 4 /* slotsMap */
        start local 4 // java.util.Map slotsMap
        22: .line 111
            goto 32
        end local 4 // java.util.Map slotsMap
      StackMap locals:
      StackMap stack:
        23: aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 27
        24: .line 112
            aload 3 /* slots */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot
            astore 5 /* slot */
        start local 5 // com.oracle.truffle.api.frame.FrameSlot slot
        25: .line 113
            aload 5 /* slot */
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* slot */
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            astore 4 /* slotsMap */
        end local 5 // com.oracle.truffle.api.frame.FrameSlot slot
        start local 4 // java.util.Map slotsMap
        26: .line 114
            goto 32
        end local 4 // java.util.Map slotsMap
        27: .line 115
      StackMap locals:
      StackMap stack:
            new java.util.LinkedHashMap
            dup
            aload 3 /* slots */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.LinkedHashMap.<init>:(I)V
            astore 4 /* slotsMap */
        start local 4 // java.util.Map slotsMap
        28: .line 116
            aload 3 /* slots */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 31
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.Frame java.lang.Class java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
        29: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.frame.FrameSlot
            astore 5 /* slot */
        start local 5 // com.oracle.truffle.api.frame.FrameSlot slot
        30: .line 117
            aload 4 /* slotsMap */
            aload 5 /* slot */
            invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* slot */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // com.oracle.truffle.api.frame.FrameSlot slot
        31: .line 116
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        32: .line 120
      StackMap locals: com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.Frame java.lang.Class java.util.List java.util.Map
      StackMap stack:
            new com.oracle.truffle.polyglot.DefaultScope$VariablesMapObject
            dup
            aload 4 /* slotsMap */
            aload 0 /* root */
            aload 1 /* frame */
            aload 2 /* language */
            invokespecial com.oracle.truffle.polyglot.DefaultScope$VariablesMapObject.<init>:(Ljava/util/Map;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)V
            areturn
        end local 4 // java.util.Map slotsMap
        end local 3 // java.util.List slots
        end local 2 // java.lang.Class language
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.nodes.RootNode root
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      root  Lcom/oracle/truffle/api/nodes/RootNode;
            0   33     1     frame  Lcom/oracle/truffle/api/frame/Frame;
            0   33     2  language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
            2    3     3     slots  Ljava/util/List<+Lcom/oracle/truffle/api/frame/FrameSlot;>;
            4   33     3     slots  Ljava/util/List<+Lcom/oracle/truffle/api/frame/FrameSlot;>;
            5   20     4  nonNulls  Ljava/util/List<Lcom/oracle/truffle/api/frame/FrameSlot;>;
            6   20     5     lastI  I
            7   16     6         i  I
            9   14     7      slot  Lcom/oracle/truffle/api/frame/FrameSlot;
           22   23     4  slotsMap  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/frame/FrameSlot;>;
           26   27     4  slotsMap  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/frame/FrameSlot;>;
           28   33     4  slotsMap  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/frame/FrameSlot;>;
           25   26     5      slot  Lcom/oracle/truffle/api/frame/FrameSlot;
           30   31     5      slot  Lcom/oracle/truffle/api/frame/FrameSlot;
    Signature: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      root      
      frame     
      language  

  static  getArguments([], java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Object[] frameArguments
        start local 1 // java.lang.Class language
         0: .line 124
            new com.oracle.truffle.polyglot.DefaultScope$ArgumentsArrayObject
            dup
            aload 0 /* frameArguments */
            aload 1 /* language */
            invokespecial com.oracle.truffle.polyglot.DefaultScope$ArgumentsArrayObject.<init>:([Ljava/lang/Object;Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Class language
        end local 0 // java.lang.Object[] frameArguments
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  frameArguments  [Ljava/lang/Object;
            0    1     1        language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: ([Ljava/lang/Object;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      frameArguments  
      language        
}
SourceFile: "DefaultScope.java"
NestMembers:
  com.oracle.truffle.polyglot.DefaultScope$ArgumentNamesObject  com.oracle.truffle.polyglot.DefaultScope$ArgumentsArrayObject  com.oracle.truffle.polyglot.DefaultScope$NullValue  com.oracle.truffle.polyglot.DefaultScope$VariableNamesObject  com.oracle.truffle.polyglot.DefaultScope$VariablesMapObject
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InteropSupport = com.oracle.truffle.api.impl.Accessor$InteropSupport of com.oracle.truffle.api.impl.Accessor
  final ArgumentNamesObject = com.oracle.truffle.polyglot.DefaultScope$ArgumentNamesObject of com.oracle.truffle.polyglot.DefaultScope
  final ArgumentsArrayObject = com.oracle.truffle.polyglot.DefaultScope$ArgumentsArrayObject of com.oracle.truffle.polyglot.DefaultScope
  final NullValue = com.oracle.truffle.polyglot.DefaultScope$NullValue of com.oracle.truffle.polyglot.DefaultScope
  final VariableNamesObject = com.oracle.truffle.polyglot.DefaultScope$VariableNamesObject of com.oracle.truffle.polyglot.DefaultScope
  final VariablesMapObject = com.oracle.truffle.polyglot.DefaultScope$VariablesMapObject of com.oracle.truffle.polyglot.DefaultScope