public abstract class com.oracle.truffle.js.runtime.objects.JSObject extends com.oracle.truffle.js.runtime.objects.JSDynamicObject
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.runtime.objects.JSObject
  super_class: com.oracle.truffle.js.runtime.objects.JSDynamicObject
{
  public static final java.lang.String CONSTRUCTOR;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "constructor"

  public static final java.lang.String PROTOTYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "prototype"

  public static final java.lang.String PROTO;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "__proto__"

  public static final com.oracle.truffle.api.object.HiddenKey HIDDEN_PROTO;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String NO_SUCH_PROPERTY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "__noSuchProperty__"

  public static final java.lang.String NO_SUCH_METHOD_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "__noSuchMethod__"

  protected static final java.lang.String[] EMPTY_STRING_ARRAY;
    descriptor: [Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, 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=3, locals=0, args_size=0
         0: .line 98
            ldc Lcom/oracle/truffle/js/runtime/objects/JSObject;
            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.runtime.objects.JSObject.$assertionsDisabled:Z
         3: .line 103
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "[[Prototype]]"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.objects.JSObject.HIDDEN_PROTO:Lcom/oracle/truffle/api/object/HiddenKey;
         4: .line 107
            iconst_0
            anewarray java.lang.String
            putstatic com.oracle.truffle.js.runtime.objects.JSObject.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // com.oracle.truffle.api.object.Shape shape
         0: .line 110
            aload 0 /* this */
            aload 1 /* shape */
            invokespecial com.oracle.truffle.js.runtime.objects.JSDynamicObject.<init>:(Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 111
            return
        end local 1 // com.oracle.truffle.api.object.Shape shape
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    2     1  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  protected com.oracle.truffle.js.runtime.objects.JSObject copyWithoutProperties(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/objects/JSObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // com.oracle.truffle.api.object.Shape shape
         0: .line 114
            ldc "copy"
            invokestatic com.oracle.truffle.js.runtime.Errors.notImplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // com.oracle.truffle.api.object.Shape shape
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  public static boolean isJSObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object object
         0: .line 121
            aload 0 /* object */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public final boolean hasMembers();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
         0: .line 127
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()

  protected static java.lang.String[] filterEnumerableNames(com.oracle.truffle.api.object.DynamicObject, java.lang.Iterable<java.lang.Object>, com.oracle.truffle.js.runtime.builtins.JSClass);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Iterable;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)[Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // java.lang.Iterable ownKeys
        start local 2 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
         0: .line 147
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* names */
        start local 3 // java.util.List names
         1: .line 148
            aload 1 /* ownKeys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Iterable com.oracle.truffle.js.runtime.builtins.JSClass java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         3: .line 149
            aload 4 /* obj */
            instanceof java.lang.String
            ifeq 7
            aload 4 /* obj */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifne 7
         4: .line 150
            aload 2 /* jsclass */
            aload 0 /* target */
            aload 4 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 6 /* desc */
        start local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         5: .line 151
            aload 6 /* desc */
            ifnull 7
            aload 6 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifeq 7
         6: .line 152
            aload 3 /* names */
            aload 4 /* obj */
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 4 // java.lang.Object obj
         7: .line 148
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 156
            aload 3 /* names */
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.util.List names
        end local 2 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
        end local 1 // java.lang.Iterable ownKeys
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0   target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    9     1  ownKeys  Ljava/lang/Iterable<Ljava/lang/Object;>;
            0    9     2  jsclass  Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            1    9     3    names  Ljava/util/List<Ljava/lang/String;>;
            3    7     4      obj  Ljava/lang/Object;
            5    7     6     desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Iterable<Ljava/lang/Object;>;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)[Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      target   
      ownKeys  
      jsclass  

  public final  readMember(java.lang.String, com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.js.lang.JavaScriptLanguage>, com.oracle.truffle.js.nodes.access.ReadElementNode, boolean, com.oracle.truffle.js.nodes.interop.ExportValueNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;ZLcom/oracle/truffle/js/nodes/interop/ExportValueNode;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
        start local 3 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        start local 4 // boolean bindMemberFunctions
        start local 5 // com.oracle.truffle.js.nodes.interop.ExportValueNode exportNode
         0: .line 165
            aload 0 /* this */
            astore 6 /* target */
        start local 6 // com.oracle.truffle.api.object.DynamicObject target
         1: .line 167
            aload 3 /* readNode */
            ifnonnull 4
         2: .line 168
            aload 6 /* target */
            aload 1 /* key */
            aload 6 /* target */
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
         3: .line 169
            goto 5
        end local 7 // java.lang.Object result
         4: .line 170
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* readNode */
            aload 6 /* target */
            aload 1 /* key */
            aconst_null
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndexOrDefault:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
         5: .line 172
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* result */
            ifnonnull 7
         6: .line 173
            aload 1 /* key */
            invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
            athrow
         7: .line 175
      StackMap locals:
      StackMap stack:
            aload 5 /* exportNode */
            aload 7 /* result */
            aload 6 /* target */
            iload 4 /* bindMemberFunctions */
            invokevirtual com.oracle.truffle.js.nodes.interop.ExportValueNode.execute:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.Object result
        end local 6 // com.oracle.truffle.api.object.DynamicObject target
        end local 5 // com.oracle.truffle.js.nodes.interop.ExportValueNode exportNode
        end local 4 // boolean bindMemberFunctions
        end local 3 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        end local 2 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    8     1                  key  Ljava/lang/String;
            0    8     2          languageRef  Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;
            0    8     3             readNode  Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            0    8     4  bindMemberFunctions  Z
            0    8     5           exportNode  Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
            1    8     6               target  Lcom/oracle/truffle/api/object/DynamicObject;
            3    4     7               result  Ljava/lang/Object;
            5    8     7               result  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException
    Signature: (Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;ZLcom/oracle/truffle/js/nodes/interop/ExportValueNode;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.CachedLanguage()
      2:
        com.oracle.truffle.api.dsl.Cached(value = "create(languageRef.get().getJSContext())", uncached = "getUncachedRead()")
      3:
        com.oracle.truffle.api.dsl.Cached(value = "languageRef.get().bindMemberFunctions()", allowUncached = true)
      4:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Exclusive()
    MethodParameters:
                     Name  Flags
      key                  
      languageRef          
      readNode             
      bindMemberFunctions  
      exportNode           

  public final boolean isMemberReadable(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 181
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            iconst_1
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final void writeMember(java.lang.String, , com.oracle.truffle.js.nodes.interop.KeyInfoNode, com.oracle.truffle.js.nodes.interop.ImportValueNode, com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.js.lang.JavaScriptLanguage>, com.oracle.truffle.js.nodes.access.WriteElementNode);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        start local 4 // com.oracle.truffle.js.nodes.interop.ImportValueNode castValueNode
        start local 5 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
        start local 6 // com.oracle.truffle.js.nodes.access.WriteElementNode writeNode
         0: .line 191
            aload 0 /* this */
            astore 7 /* target */
        start local 7 // com.oracle.truffle.api.object.DynamicObject target
         1: .line 192
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.objects.JSObject.testIntegrityLevel:(Z)Z
            ifeq 3
         2: .line 193
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         3: .line 195
      StackMap locals: com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 3 /* keyInfo */
            aload 7 /* target */
            aload 1 /* key */
            bipush 6
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ifne 5
         4: .line 196
            aload 1 /* key */
            invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
            athrow
         5: .line 198
      StackMap locals:
      StackMap stack:
            aload 4 /* castValueNode */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.js.nodes.interop.ImportValueNode.executeWithTarget:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* importedValue */
        start local 8 // java.lang.Object importedValue
         6: .line 199
            aload 6 /* writeNode */
            ifnonnull 9
         7: .line 200
            aload 7 /* target */
            aload 1 /* key */
            aload 8 /* importedValue */
            iconst_1
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            pop
         8: .line 201
            goto 10
         9: .line 202
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* writeNode */
            aload 7 /* target */
            aload 1 /* key */
            aload 8 /* importedValue */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 204
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.Object importedValue
        end local 7 // com.oracle.truffle.api.object.DynamicObject target
        end local 6 // com.oracle.truffle.js.nodes.access.WriteElementNode writeNode
        end local 5 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
        end local 4 // com.oracle.truffle.js.nodes.interop.ImportValueNode castValueNode
        end local 3 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0   11     1            key  Ljava/lang/String;
            0   11     2          value  Ljava/lang/Object;
            0   11     3        keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
            0   11     4  castValueNode  Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
            0   11     5    languageRef  Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;
            0   11     6      writeNode  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            1   11     7         target  Lcom/oracle/truffle/api/object/DynamicObject;
            6   11     8  importedValue  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException, com.oracle.truffle.api.interop.UnsupportedMessageException
    Signature: (Ljava/lang/String;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
      3:
        com.oracle.truffle.api.dsl.Cached()
      4:
        com.oracle.truffle.api.dsl.CachedLanguage()
      5:
        com.oracle.truffle.api.dsl.Cached(value = "createCachedInterop(languageRef)", uncached = "getUncachedWrite()")
    MethodParameters:
               Name  Flags
      key            
      value          
      keyInfo        
      castValueNode  
      languageRef    
      writeNode      

  public final boolean isMemberModifiable(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 209
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            iconst_2
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final boolean isMemberInsertable(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 215
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            iconst_4
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final void removeMember(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
         0: .line 220
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.JSObject.testIntegrityLevel:(Z)Z
            ifeq 2
         1: .line 221
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
         2: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            pop
         3: .line 224
            return
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    4     1   key  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
      Name  Flags
      key   

  public final boolean isMemberRemovable(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 229
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            bipush 16
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final java.lang.Object invokeMember(java.lang.String, java.lang.Object[], com.oracle.truffle.js.lang.JavaScriptLanguage, com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode, com.oracle.truffle.js.nodes.interop.ExportValueNode);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/js/nodes/interop/JSInteropInvokeNode;Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=10, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String id
        start local 2 // java.lang.Object[] args
        start local 3 // com.oracle.truffle.js.lang.JavaScriptLanguage language
        start local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 5 // com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode callNode
        start local 6 // com.oracle.truffle.js.nodes.interop.ExportValueNode exportNode
         0: .line 238
            aload 3 /* language */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryEnter:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         1: .line 240
            aload 5 /* callNode */
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* args */
            invokevirtual com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
         2: .line 241
            aload 6 /* exportNode */
            aload 7 /* result */
            invokevirtual com.oracle.truffle.js.nodes.interop.ExportValueNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9
         3: .line 243
            aload 3 /* language */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryExit:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         4: .line 241
            aload 9
            areturn
        end local 7 // java.lang.Object result
         5: .line 242
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
         6: .line 243
            aload 3 /* language */
            aload 4 /* realm */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.interopBoundaryExit:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         7: .line 244
            aload 8
            athrow
        end local 6 // com.oracle.truffle.js.nodes.interop.ExportValueNode exportNode
        end local 5 // com.oracle.truffle.js.nodes.interop.JSInteropInvokeNode callNode
        end local 4 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 3 // com.oracle.truffle.js.lang.JavaScriptLanguage language
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    8     1          id  Ljava/lang/String;
            0    8     2        args  [Ljava/lang/Object;
            0    8     3    language  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    8     4       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    8     5    callNode  Lcom/oracle/truffle/js/nodes/interop/JSInteropInvokeNode;
            0    8     6  exportNode  Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
            2    5     7      result  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     3       5  any
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.UnknownIdentifierException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.CachedLanguage()
      3:
        com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/js/lang/JavaScriptLanguage;)
      4:
        com.oracle.truffle.api.dsl.Cached()
      5:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Exclusive()
    MethodParameters:
            Name  Flags
      id          
      args        
      language    
      realm       
      callNode    
      exportNode  

  public final boolean isMemberInvocable(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 250
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            bipush 8
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final boolean hasMemberReadSideEffects(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 256
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            bipush 32
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final boolean hasMemberWriteSideEffects(java.lang.String, com.oracle.truffle.js.nodes.interop.KeyInfoNode);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // java.lang.String key
        start local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
         0: .line 262
            aload 2 /* keyInfo */
            aload 0 /* this */
            aload 1 /* key */
            bipush 64
            invokevirtual com.oracle.truffle.js.nodes.interop.KeyInfoNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;I)Z
            ireturn
        end local 2 // com.oracle.truffle.js.nodes.interop.KeyInfoNode keyInfo
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1      key  Ljava/lang/String;
            0    1     2  keyInfo  Lcom/oracle/truffle/js/nodes/interop/KeyInfoNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached$Shared(value = "keyInfo")
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
         Name  Flags
      key      
      keyInfo  

  public final boolean hasLanguage();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
         0: .line 268
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()

  public final java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> getLanguage();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
         0: .line 274
            ldc Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()

  public final java.lang.Object toDisplayString(boolean);
    descriptor: (Z)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
        start local 1 // boolean allowSideEffects
         0: .line 279
            aload 0 /* this */
            iload 1 /* allowSideEffects */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toDisplayString:(Ljava/lang/Object;Z)Ljava/lang/String;
            areturn
        end local 1 // boolean allowSideEffects
        end local 0 // com.oracle.truffle.js.runtime.objects.JSObject this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/runtime/objects/JSObject;
            0    1     1  allowSideEffects  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
                  Name  Flags
      allowSideEffects  

  public static com.oracle.truffle.js.nodes.access.ReadElementNode getUncachedRead();
    descriptor: ()Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 283
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.nodes.access.WriteElementNode getUncachedWrite();
    descriptor: ()Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 287
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.runtime.builtins.JSClass getJSClass(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 291
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getJSClass:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.object.DynamicObject getPrototype(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 296
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.object.DynamicObject getPrototype(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
         0: .line 300
            aload 1 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
                Name  Flags
      obj             
      jsclassProfile  

  public static boolean setPrototype(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.api.object.DynamicObject newPrototype
         0: .line 305
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* newPrototype */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* newPrototype */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.setPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject newPrototype
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1  newPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      obj           
      newPrototype  

  public static boolean setPrototype(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.api.object.DynamicObject newPrototype
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
         0: .line 310
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* newPrototype */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 311
      StackMap locals:
      StackMap stack:
            aload 2 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* newPrototype */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.setPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 1 // com.oracle.truffle.api.object.DynamicObject newPrototype
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1    newPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2  jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
                Name  Flags
      obj             
      newPrototype    
      jsclassProfile  

  public static java.lang.Object get(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
         0: .line 316
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.get:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            areturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  

  public static java.lang.Object get(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 321
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1   key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static java.lang.Object get(com.oracle.truffle.api.interop.TruffleObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.interop.TruffleObject obj
        start local 1 // java.lang.Object key
         0: .line 327
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 329
            aload 0 /* obj */
            checkcast com.oracle.truffle.api.object.DynamicObject
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         3: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            aload 1 /* key */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokestatic com.oracle.truffle.js.runtime.interop.JSInteropUtil.readMemberOrDefault:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.interop.TruffleObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   obj  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    4     1   key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static java.lang.Object get(com.oracle.truffle.api.interop.TruffleObject, long);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;J)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.interop.TruffleObject obj
        start local 1 // long index
         0: .line 337
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 338
            aload 0 /* obj */
            checkcast com.oracle.truffle.api.object.DynamicObject
            lload 1 /* index */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            areturn
         2: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            lload 1 /* index */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokestatic com.oracle.truffle.js.runtime.interop.JSInteropUtil.readArrayElementOrDefault:(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.interop.TruffleObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    obj  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    3     1  index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  

  public static java.lang.Object getMethod(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object name
         0: .line 346
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* name */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 0 /* obj */
            aload 1 /* name */
            aconst_null
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getMethodHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.nullToUndefined:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         2: .line 348
            aload 2 /* result */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 3
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: aload 2 /* result */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 2 // java.lang.Object result
        end local 1 // java.lang.Object name
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1    name  Ljava/lang/Object;
            2    5     2  result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      name  

  public static boolean set(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // java.lang.Object value
         0: .line 353
            aload 0 /* obj */
            lload 1 /* index */
            aload 3 /* value */
            iconst_0
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  index  J
            0    1     3  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  
      value  

  public static boolean set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
         0: .line 358
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* value */
            iconst_0
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1    key  Ljava/lang/Object;
            0    1     2  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      key    
      value  

  public static boolean set(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // java.lang.Object value
        start local 4 // boolean isStrict
        start local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 363
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            aload 3 /* value */
            aload 0 /* obj */
            iload 4 /* isStrict */
            aload 5 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 4 // boolean isStrict
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1              index  J
            0    1     3              value  Ljava/lang/Object;
            0    1     4           isStrict  Z
            0    1     5  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      obj                
      index              
      value              
      isStrict           
      encapsulatingNode  

  public static boolean set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
        start local 3 // boolean isStrict
        start local 4 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 368
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* value */
            aload 0 /* obj */
            iload 3 /* isStrict */
            aload 4 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 4 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 3 // boolean isStrict
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1                key  Ljava/lang/Object;
            0    2     2              value  Ljava/lang/Object;
            0    2     3           isStrict  Z
            0    2     4  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      obj                
      key                
      value              
      isStrict           
      encapsulatingNode  

  public static boolean setWithReceiver(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.js.runtime.util.JSClassProfile, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
        start local 3 // java.lang.Object receiver
        start local 4 // boolean isStrict
        start local 5 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        start local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 376
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 377
      StackMap locals:
      StackMap stack:
            aload 5 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* value */
            aload 3 /* receiver */
            iload 4 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 5 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 4 // boolean isStrict
        end local 3 // java.lang.Object receiver
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1                key  Ljava/lang/Object;
            0    2     2              value  Ljava/lang/Object;
            0    2     3           receiver  Ljava/lang/Object;
            0    2     4           isStrict  Z
            0    2     5       classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            0    2     6  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
                   Name  Flags
      obj                
      key                
      value              
      receiver           
      isStrict           
      classProfile       
      encapsulatingNode  

  public static boolean setWithReceiver(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.js.runtime.util.JSClassProfile, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
        start local 5 // boolean isStrict
        start local 6 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        start local 7 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 381
            aload 6 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 7 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 7 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 6 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 5 // boolean isStrict
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1              index  J
            0    1     3              value  Ljava/lang/Object;
            0    1     4           receiver  Ljava/lang/Object;
            0    1     5           isStrict  Z
            0    1     6       classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            0    1     7  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
                   Name  Flags
      obj                
      index              
      value              
      receiver           
      isStrict           
      classProfile       
      encapsulatingNode  

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
         0: .line 386
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.delete:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ireturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, long, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // boolean isStrict
         0: .line 391
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            iload 3 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.delete:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ireturn
        end local 3 // boolean isStrict
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0       obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1     index  J
            0    1     3  isStrict  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      obj       
      index     
      isStrict  

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, long, boolean, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZLcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // boolean isStrict
        start local 4 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 395
            aload 4 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            iload 3 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.delete:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ireturn
        end local 4 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 3 // boolean isStrict
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1         index  J
            0    1     3      isStrict  Z
            0    1     4  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      index         
      isStrict      
      classProfile  

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 400
            aload 0 /* obj */
            aload 1 /* key */
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // boolean isStrict
         0: .line 405
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            iload 2 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            ireturn
        end local 2 // boolean isStrict
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0       obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1       key  Ljava/lang/Object;
            0    2     2  isStrict  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      obj       
      key       
      isStrict  

  public static boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;ZLcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // boolean isStrict
        start local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 410
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 411
      StackMap locals:
      StackMap stack:
            aload 3 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            iload 2 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 2 // boolean isStrict
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1           key  Ljava/lang/Object;
            0    2     2      isStrict  Z
            0    2     3  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      key           
      isStrict      
      classProfile  

  public static boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
         0: .line 416
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  

  public static boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, long, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 420
            aload 3 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1         index  J
            0    1     3  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      index         
      classProfile  

  public static boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 425
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1   key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 430
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 431
      StackMap locals:
      StackMap stack:
            aload 2 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1           key  Ljava/lang/Object;
            0    2     2  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      key           
      classProfile  

  public static boolean hasProperty(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
         0: .line 436
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      index  

  public static boolean hasProperty(com.oracle.truffle.api.object.DynamicObject, long, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 440
            aload 3 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1         index  J
            0    1     3  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      index         
      classProfile  

  public static boolean hasProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 445
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1   key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static boolean hasProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 450
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 451
      StackMap locals:
      StackMap stack:
            aload 2 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1           key  Ljava/lang/Object;
            0    2     2  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      key           
      classProfile  

  public static com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 455
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 460
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 461
      StackMap locals:
      StackMap stack:
            aload 2 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1           key  Ljava/lang/Object;
            0    2     2  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      key           
      classProfile  

  public static java.util.List<java.lang.Object> ownPropertyKeys(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 468
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List<Ljava/lang/Object;>;
    MethodParameters:
      Name  Flags
      obj   

  public static java.util.List<java.lang.Object> ownPropertyKeys(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 472
            aload 1 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Ljava/util/List<Ljava/lang/Object;>;
    MethodParameters:
              Name  Flags
      obj           
      classProfile  

  public static java.util.List<java.lang.String> enumerableOwnNames(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 480
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            astore 1 /* jsclass */
        start local 1 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
         1: .line 481
            aload 1 /* jsclass */
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.hasOnlyShapeProperties:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 3
         2: .line 482
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getEnumerablePropertyNames:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
            areturn
         3: .line 484
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSClass
      StackMap stack:
            aload 1 /* jsclass */
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            astore 2 /* ownKeys */
        start local 2 // java.lang.Iterable ownKeys
         4: .line 485
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* names */
        start local 3 // java.util.List names
         5: .line 486
            aload 2 /* ownKeys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.builtins.JSClass java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         7: .line 487
            aload 4 /* obj */
            instanceof java.lang.String
            ifeq 11
         8: .line 488
            aload 1 /* jsclass */
            aload 0 /* thisObj */
            aload 4 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 6 /* desc */
        start local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         9: .line 489
            aload 6 /* desc */
            ifnull 11
            aload 6 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            ifeq 11
        10: .line 490
            aload 3 /* names */
            aload 4 /* obj */
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 4 // java.lang.Object obj
        11: .line 486
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 494
            aload 3 /* names */
            areturn
        end local 3 // java.util.List names
        end local 2 // java.lang.Iterable ownKeys
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            1   13     1  jsclass  Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            4   13     2  ownKeys  Ljava/lang/Iterable<Ljava/lang/Object;>;
            5   13     3    names  Ljava/util/List<Ljava/lang/String;>;
            7   11     4      obj  Ljava/lang/Object;
            9   11     6     desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  

  public static boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         0: .line 499
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* desc */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            ireturn
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1   key  Ljava/lang/Object;
            0    2     2  desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      key   
      desc  

  public static boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        start local 3 // boolean doThrow
         0: .line 505
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* desc */
            iload 3 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            ireturn
        end local 3 // boolean doThrow
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0      obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1      key  Ljava/lang/Object;
            0    2     2     desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0    2     3  doThrow  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      obj      
      key      
      desc     
      doThrow  

  public static java.lang.Object get(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
         0: .line 510
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 511
      StackMap locals:
      StackMap stack:
            aload 2 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1             key  Ljava/lang/Object;
            0    2     2  jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
                Name  Flags
      obj             
      key             
      jsclassProfile  

  public static java.lang.Object get(com.oracle.truffle.api.object.DynamicObject, long, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLcom/oracle/truffle/js/runtime/util/JSClassProfile;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
         0: .line 515
            aload 3 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            lload 1 /* index */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.get:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1           index  J
            0    1     3  jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
                Name  Flags
      obj             
      index           
      jsclassProfile  

  public static java.lang.Object getOrDefault(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object defaultValue
        start local 4 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        start local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 519
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 520
      StackMap locals:
      StackMap stack:
            aload 4 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 2 /* receiver */
            aload 1 /* key */
            aload 5 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 6 /* result */
        start local 6 // java.lang.Object result
         2: .line 521
            aload 6 /* result */
            ifnonnull 3
            aload 3 /* defaultValue */
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: aload 6 /* result */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 6 // java.lang.Object result
        end local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 4 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 3 // java.lang.Object defaultValue
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1                key  Ljava/lang/Object;
            0    5     2           receiver  Ljava/lang/Object;
            0    5     3       defaultValue  Ljava/lang/Object;
            0    5     4     jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            0    5     5  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            2    5     6             result  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      obj                
      key                
      receiver           
      defaultValue       
      jsclassProfile     
      encapsulatingNode  

  public static java.lang.Object getOrDefault(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, com.oracle.truffle.js.runtime.util.JSClassProfile, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // java.lang.Object receiver
        start local 4 // java.lang.Object defaultValue
        start local 5 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        start local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 525
            aload 5 /* jsclassProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 3 /* receiver */
            lload 1 /* index */
            aload 6 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* result */
        start local 7 // java.lang.Object result
         1: .line 526
            aload 7 /* result */
            ifnonnull 2
            aload 4 /* defaultValue */
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: aload 7 /* result */
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 7 // java.lang.Object result
        end local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 5 // com.oracle.truffle.js.runtime.util.JSClassProfile jsclassProfile
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object receiver
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1              index  J
            0    4     3           receiver  Ljava/lang/Object;
            0    4     4       defaultValue  Ljava/lang/Object;
            0    4     5     jsclassProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            0    4     6  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            1    4     7             result  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      obj                
      index              
      receiver           
      defaultValue       
      jsclassProfile     
      encapsulatingNode  

  public static java.lang.Object getOrDefault(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object defaultValue
         0: .line 530
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* receiver */
            aload 3 /* defaultValue */
            invokestatic com.oracle.truffle.js.runtime.util.JSClassProfile.getUncached:()Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object defaultValue
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1           key  Ljava/lang/Object;
            0    1     2      receiver  Ljava/lang/Object;
            0    1     3  defaultValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      obj           
      key           
      receiver      
      defaultValue  

  public static java.lang.Object getOrDefault(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // long index
        start local 3 // java.lang.Object receiver
        start local 4 // java.lang.Object defaultValue
         0: .line 534
            aload 0 /* obj */
            lload 1 /* index */
            aload 3 /* receiver */
            aload 4 /* defaultValue */
            invokestatic com.oracle.truffle.js.runtime.util.JSClassProfile.getUncached:()Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
            aconst_null
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object receiver
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1         index  J
            0    1     3      receiver  Ljava/lang/Object;
            0    1     4  defaultValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      obj           
      index         
      receiver      
      defaultValue  

  public static java.lang.Object getWithReceiver(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object receiver
        start local 3 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 539
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            aload 2 /* receiver */
            aload 1 /* key */
            aload 3 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         2: .line 541
            aload 4 /* result */
            ifnonnull 3
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: aload 4 /* result */
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
        end local 4 // java.lang.Object result
        end local 3 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0                obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1                key  Ljava/lang/Object;
            0    5     2           receiver  Ljava/lang/Object;
            0    5     3  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            2    5     4             result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      obj                
      key                
      receiver           
      encapsulatingNode  

  public static java.lang.String defaultToString(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 546
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.defaultToString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static java.lang.String toDisplayString(com.oracle.truffle.api.object.DynamicObject, int, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZ)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // int depth
        start local 2 // boolean allowSideEffects
         0: .line 552
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            iload 1 /* depth */
            iload 2 /* allowSideEffects */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getCurrentLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.toDisplayStringImpl:(Lcom/oracle/truffle/api/object/DynamicObject;IZLcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
            areturn
        end local 2 // boolean allowSideEffects
        end local 1 // int depth
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0               obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1             depth  I
            0    1     2  allowSideEffects  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage$Ignore()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      obj               
      depth             
      allowSideEffects  

  public static java.lang.Object toPrimitive(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.String hint
         0: .line 560
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 2
            aload 0 /* obj */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 1
            aload 0 /* obj */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_TO_PRIMITIVE:Lcom/oracle/truffle/js/runtime/Symbol;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getMethod:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* exoticToPrim */
        start local 2 // java.lang.Object exoticToPrim
         3: .line 562
            aload 2 /* exoticToPrim */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 8
         4: .line 563
            aload 2 /* exoticToPrim */
            aload 0 /* obj */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* hint */
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         5: .line 564
            aload 3 /* result */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 565
            ldc "[Symbol.toPrimitive] method returned a non-primitive object"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         7: .line 567
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
         8: .line 569
      StackMap locals:
      StackMap stack:
            aload 1 /* hint */
            ldc "default"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 570
            aload 0 /* obj */
            ldc "number"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.ordinaryToPrimitive:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        10: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            aload 1 /* hint */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.ordinaryToPrimitive:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object exoticToPrim
        end local 1 // java.lang.String hint
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   11     1          hint  Ljava/lang/String;
            3   11     2  exoticToPrim  Ljava/lang/Object;
            5    8     3        result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      hint  

  public static java.lang.Object toPrimitive(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 578
            aload 0 /* obj */
            ldc "default"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.toPrimitive:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static java.lang.Object ordinaryToPrimitive(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.String hint
         0: .line 586
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 587
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 2
            ldc "string"
            aload 1 /* hint */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            ldc "number"
            aload 1 /* hint */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 589
      StackMap locals:
      StackMap stack:
            ldc "string"
            aload 1 /* hint */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 590
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "toString"
            aastore
            dup
            iconst_1
            ldc "valueOf"
            aastore
            astore 2 /* methodNames */
        start local 2 // java.lang.String[] methodNames
         4: .line 591
            goto 6
        end local 2 // java.lang.String[] methodNames
         5: .line 592
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "valueOf"
            aastore
            dup
            iconst_1
            ldc "toString"
            aastore
            astore 2 /* methodNames */
        start local 2 // java.lang.String[] methodNames
         6: .line 594
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 2 /* methodNames */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 14
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         7: aload 6
            iload 4
            aaload
            astore 3 /* name */
        start local 3 // java.lang.String name
         8: .line 595
            aload 0 /* obj */
            aload 3 /* name */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getMethod:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* method */
        start local 7 // java.lang.Object method
         9: .line 596
            aload 7 /* method */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isCallable:(Ljava/lang/Object;)Z
            ifeq 13
        10: .line 597
            aload 7 /* method */
            aload 0 /* obj */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* result */
        start local 8 // java.lang.Object result
        11: .line 598
            aload 8 /* result */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 599
            aload 8 /* result */
            areturn
        end local 8 // java.lang.Object result
        end local 7 // java.lang.Object method
        end local 3 // java.lang.String name
        13: .line 594
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        14: iload 4
            iload 5
            if_icmplt 7
        15: .line 603
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCannotConvertToPrimitiveValue:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 2 // java.lang.String[] methodNames
        end local 1 // java.lang.String hint
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0          obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   16     1         hint  Ljava/lang/String;
            4    5     2  methodNames  [Ljava/lang/String;
            6   16     2  methodNames  [Ljava/lang/String;
            8   13     3         name  Ljava/lang/String;
            9   13     7       method  Ljava/lang/Object;
           11   13     8       result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   
      hint  

  public static boolean preventExtensions(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 608
            aload 0 /* obj */
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.preventExtensions:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static boolean preventExtensions(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // boolean doThrow
         0: .line 613
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            iload 1 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.preventExtensions:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 1 // boolean doThrow
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0      obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  doThrow  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      obj      
      doThrow  

  public static boolean isExtensible(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 618
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isExtensible(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.util.JSClassProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
         0: .line 622
            aload 1 /* classProfile */
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // com.oracle.truffle.js.runtime.util.JSClassProfile classProfile
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0           obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  classProfile  Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
    MethodParameters:
              Name  Flags
      obj           
      classProfile  

  public static java.lang.String getClassName(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 633
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.getClassName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isFrozen(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 638
            aload 0 /* obj */
            iconst_1
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.testIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isSealed(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 643
            aload 0 /* obj */
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.testIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.js.runtime.array.ScriptArray getArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 647
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 648
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof com.oracle.truffle.js.runtime.builtins.JSArrayBase
            ifeq 3
         2: .line 649
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSArrayBase
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSArrayBase.getArrayType:()Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            areturn
         3: .line 651
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSTypedArrayObject
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSTypedArrayObject.getArrayType:()Lcom/oracle/truffle/js/runtime/array/TypedArray;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static void setArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // com.oracle.truffle.js.runtime.array.ScriptArray array
         0: .line 656
            getstatic com.oracle.truffle.js.runtime.objects.JSObject.$assertionsDisabled:Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast com.oracle.truffle.js.runtime.builtins.JSArrayBase
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSArrayBase.setArrayType:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         2: .line 658
            return
        end local 1 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    MethodParameters:
       Name  Flags
      obj    
      array  

  public static boolean hasArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 661
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSArray:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArgumentsArray.isJSArgumentsObject:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.isJSArrayBufferView:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSObjectPrototype.isJSObjectPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.js.runtime.JSContext getJSContext(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
         0: .line 665
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getJSContext:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean testIntegrityLevel(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // boolean frozen
         0: .line 670
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            iload 1 /* frozen */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.testIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 1 // boolean frozen
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  frozen  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(transferToInterpreterOnException = false)
    MethodParameters:
        Name  Flags
      obj     
      frozen  

  public static boolean setIntegrityLevel(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // boolean freeze
         0: .line 675
            aload 0 /* obj */
            iload 1 /* freeze */
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.setIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Z
            ireturn
        end local 1 // boolean freeze
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  freeze  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      obj     
      freeze  

  public static boolean setIntegrityLevel(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // boolean freeze
        start local 2 // boolean doThrow
         0: .line 680
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 0 /* obj */
            iload 1 /* freeze */
            iload 2 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.setIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Z
            ireturn
        end local 2 // boolean doThrow
        end local 1 // boolean freeze
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0      obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   freeze  Z
            0    1     2  doThrow  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      obj      
      freeze   
      doThrow  
}
SourceFile: "JSObject.java"
NestMembers:
  com.oracle.truffle.js.runtime.objects.JSObject$GetMembers
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
  public abstract Exclusive = com.oracle.truffle.api.dsl.Cached$Exclusive of com.oracle.truffle.api.dsl.Cached
  public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
  public abstract Ignore = com.oracle.truffle.api.library.ExportMessage$Ignore of com.oracle.truffle.api.library.ExportMessage
  public abstract GetMembers = com.oracle.truffle.js.runtime.objects.JSObject$GetMembers of com.oracle.truffle.js.runtime.objects.JSObject
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)