public abstract class com.oracle.truffle.js.runtime.objects.JSDynamicObject extends com.oracle.truffle.api.object.DynamicObject implements com.oracle.truffle.api.interop.TruffleObject
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.runtime.objects.JSDynamicObject
  super_class: com.oracle.truffle.api.object.DynamicObject
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 72
            ldc Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            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.JSDynamicObject.$assertionsDisabled:Z
            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.JSDynamicObject this
        start local 1 // com.oracle.truffle.api.object.Shape shape
         0: .line 75
            aload 0 /* this */
            aload 1 /* shape */
            invokespecial com.oracle.truffle.api.object.DynamicObject.<init>:(Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 76
            return
        end local 1 // com.oracle.truffle.api.object.Shape shape
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            0    2     1  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  public final int identityHashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 95
            aload 0 /* this */
            invokespecial java.lang.Object.hashCode:()I
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public final com.oracle.truffle.js.runtime.JSContext getJSContext();
    descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 99
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.getJSSharedData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/objects/JSSharedData;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSSharedData.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;

  public com.oracle.truffle.js.runtime.builtins.JSClass getJSClass();
    descriptor: ()Lcom/oracle/truffle/js/runtime/builtins/JSClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 103
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.getDynamicType:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.builtins.JSClass
            areturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;

  public abstract com.oracle.truffle.js.runtime.objects.JSDynamicObject getPrototypeOf();
    descriptor: ()Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract boolean setPrototypeOf(com.oracle.truffle.js.runtime.objects.JSDynamicObject);
    descriptor: (Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      newPrototype  

  public abstract boolean isExtensible();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract boolean preventExtensions(boolean);
    descriptor: (Z)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      doThrow  

  public abstract com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      propertyKey  

  public abstract boolean defineOwnProperty(java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      key      
      value    
      doThrow  

  public abstract boolean hasProperty(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      key   

  public abstract boolean hasProperty(long);
    descriptor: (J)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      index  

  public abstract boolean hasOwnProperty(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      propName  

  public abstract boolean hasOwnProperty(long);
    descriptor: (J)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      index  

  public java.lang.Object getValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
        start local 1 // java.lang.Object key
         0: .line 164
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* key */
            aconst_null
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getHelper:(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;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public java.lang.Object getValue(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
        start local 1 // long index
         0: .line 168
            aload 0 /* this */
            aload 0 /* this */
            lload 1 /* index */
            aconst_null
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getHelper:(Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.nullToUndefined:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // long index
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            0    1     1  index  J
    MethodParameters:
       Name  Flags
      index  

  public abstract java.lang.Object getHelper(java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      receiver           
      key                
      encapsulatingNode  

  public abstract java.lang.Object getHelper(java.lang.Object, long, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      receiver           
      index              
      encapsulatingNode  

  public abstract java.lang.Object getOwnHelper(java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      receiver           
      key                
      encapsulatingNode  

  public abstract java.lang.Object getOwnHelper(java.lang.Object, long, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      receiver           
      index              
      encapsulatingNode  

  public abstract java.lang.Object getMethodHelper(java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      receiver           
      key                
      encapsulatingNode  

  public abstract boolean set(java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      key                
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  public abstract boolean set(long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      index              
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  public abstract boolean delete(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      key       
      isStrict  

  public abstract boolean delete(long, boolean);
    descriptor: (JZ)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      propIdx   
      isStrict  

  public java.util.List<java.lang.Object> ownPropertyKeys();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 214
            aload 0 /* this */
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getOwnPropertyKeys:(ZZ)Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
    Signature: ()Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract java.util.List<java.lang.Object> getOwnPropertyKeys(boolean, boolean);
    descriptor: (ZZ)Ljava/util/List;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (ZZ)Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      strings  
      symbols  

  public abstract boolean hasOnlyShapeProperties();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  boolean isObject();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 245
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;

  public java.lang.String defaultToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 260
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 1 /* context */
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         1: .line 261
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
            iconst_5
            if_icmpgt 3
         2: .line 262
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getClassName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.formatToString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         3: .line 264
      StackMap locals: com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aconst_null
            astore 2 /* result */
        start local 2 // java.lang.String result
         4: .line 265
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.isObject:()Z
            ifeq 8
         5: .line 266
            aload 0 /* this */
            getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_TO_STRING_TAG:Lcom/oracle/truffle/js/runtime/Symbol;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* toStringTag */
        start local 3 // java.lang.Object toStringTag
         6: .line 267
            aload 3 /* toStringTag */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 268
            aload 3 /* toStringTag */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.javaToString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* result */
        end local 3 // java.lang.Object toStringTag
         8: .line 271
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* result */
            ifnonnull 10
         9: .line 272
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getBuiltinToStringTag:()Ljava/lang/String;
            astore 2 /* result */
        10: .line 274
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.formatToString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String result
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            1   11     1      context  Lcom/oracle/truffle/js/runtime/JSContext;
            4   11     2       result  Ljava/lang/String;
            6    8     3  toStringTag  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.lang.String getBuiltinToStringTag();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
         0: .line 285
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getClassName:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public abstract java.lang.String toDisplayStringImpl(int, boolean);
    descriptor: (IZ)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      depth             
      allowSideEffects  

  public boolean testIntegrityLevel(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
        start local 1 // boolean frozen
         0: .line 301
            getstatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.isObject:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.isExtensible:()Z
            istore 2 /* status */
        start local 2 // boolean status
         2: .line 303
            iload 2 /* status */
            ifeq 4
         3: .line 304
            iconst_0
            ireturn
         4: .line 306
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.ownPropertyKeys:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* key */
        start local 3 // java.lang.Object key
         6: .line 307
            aload 0 /* this */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getOwnProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 5 /* desc */
        start local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
         7: .line 308
            aload 5 /* desc */
            ifnull 12
         8: .line 309
            aload 5 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifeq 10
         9: .line 310
            iconst_0
            ireturn
        10: .line 312
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Object java.util.Iterator com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            iload 1 /* frozen */
            ifeq 12
            aload 5 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
            ifeq 12
            aload 5 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifeq 12
        11: .line 313
            iconst_0
            ireturn
        end local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        end local 3 // java.lang.Object key
        12: .line 306
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 317
            iconst_1
            ireturn
        end local 2 // boolean status
        end local 1 // boolean frozen
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            0   14     1  frozen  Z
            2   14     2  status  Z
            6   12     3     key  Ljava/lang/Object;
            7   12     5    desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      frozen  

  public boolean setIntegrityLevel(boolean, boolean);
    descriptor: (ZZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
        start local 1 // boolean freeze
        start local 2 // boolean doThrow
         0: .line 325
            getstatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.isObject:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.preventExtensions:(Z)Z
            ifne 3
         2: .line 327
            iconst_0
            ireturn
         3: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.ownPropertyKeys:()Ljava/util/List;
            astore 3 /* keys */
        start local 3 // java.lang.Iterable keys
         4: .line 330
            iload 1 /* freeze */
            ifeq 22
         5: .line 332
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createEmpty:()Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 4 /* accDesc */
        start local 4 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor accDesc
         6: .line 333
            aload 4 /* accDesc */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setConfigurable:(Z)V
         7: .line 334
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createEmpty:()Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 5 /* dataDesc */
        start local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor dataDesc
         8: .line 335
            aload 5 /* dataDesc */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setConfigurable:(Z)V
         9: .line 336
            aload 5 /* dataDesc */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setWritable:(Z)V
        10: .line 338
            aload 3 /* keys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable com.oracle.truffle.js.runtime.objects.PropertyDescriptor com.oracle.truffle.js.runtime.objects.PropertyDescriptor top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* key */
        start local 6 // java.lang.Object key
        12: .line 339
            aload 0 /* this */
            aload 6 /* key */
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.getOwnProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 8 /* currentDesc */
        start local 8 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor currentDesc
        13: .line 340
            aload 8 /* currentDesc */
            ifnull 20
        14: .line 341
            aconst_null
            astore 9 /* newDesc */
        start local 9 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor newDesc
        15: .line 342
            aload 8 /* currentDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
            ifeq 18
        16: .line 343
            aload 4 /* accDesc */
            astore 9 /* newDesc */
        17: .line 344
            goto 19
        18: .line 345
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable com.oracle.truffle.js.runtime.objects.PropertyDescriptor com.oracle.truffle.js.runtime.objects.PropertyDescriptor java.lang.Object java.util.Iterator com.oracle.truffle.js.runtime.objects.PropertyDescriptor com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            aload 5 /* dataDesc */
            astore 9 /* newDesc */
        19: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* key */
            aload 9 /* newDesc */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.defineOwnProperty:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            pop
        end local 9 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor newDesc
        end local 8 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor currentDesc
        end local 6 // java.lang.Object key
        20: .line 338
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable com.oracle.truffle.js.runtime.objects.PropertyDescriptor com.oracle.truffle.js.runtime.objects.PropertyDescriptor top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 5 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor dataDesc
        end local 4 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor accDesc
        21: .line 350
            goto 28
        22: .line 352
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createEmpty:()Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 4 /* desc */
        start local 4 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        23: .line 353
            aload 4 /* desc */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setConfigurable:(Z)V
        24: .line 354
            aload 3 /* keys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 27
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable com.oracle.truffle.js.runtime.objects.PropertyDescriptor top java.util.Iterator
      StackMap stack:
        25: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 5 /* key */
        start local 5 // java.lang.Object key
        26: .line 355
            aload 0 /* this */
            aload 5 /* key */
            aload 4 /* desc */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.objects.JSDynamicObject.defineOwnProperty:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            pop
        end local 5 // java.lang.Object key
        27: .line 354
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 4 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        28: .line 358
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject int int java.lang.Iterable
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Iterable keys
        end local 2 // boolean doThrow
        end local 1 // boolean freeze
        end local 0 // com.oracle.truffle.js.runtime.objects.JSDynamicObject this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            0   29     1       freeze  Z
            0   29     2      doThrow  Z
            4   29     3         keys  Ljava/lang/Iterable<Ljava/lang/Object;>;
            6   21     4      accDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            8   21     5     dataDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           12   20     6          key  Ljava/lang/Object;
           13   20     8  currentDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           15   20     9      newDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           23   28     4         desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           26   27     5          key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      freeze   
      doThrow  

  public static boolean isJSDynamicObject(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 367
            aload 0 /* object */
            instanceof com.oracle.truffle.js.runtime.objects.JSDynamicObject
            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 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 371
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.getJSSharedData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/objects/JSSharedData;
            invokevirtual com.oracle.truffle.js.runtime.objects.JSSharedData.getContext:()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 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 375
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.getDynamicType:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
            checkcast com.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 void setJSClass(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.builtins.JSClass);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)V
    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.js.runtime.builtins.JSClass jsclass
         0: .line 379
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* jsclass */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.setDynamicType:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            pop
         1: .line 380
            return
        end local 1 // com.oracle.truffle.js.runtime.builtins.JSClass jsclass
        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  jsclass  Lcom/oracle/truffle/js/runtime/builtins/JSClass;
    MethodParameters:
         Name  Flags
      obj      
      jsclass  

  public static java.lang.Object getDynamicType(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    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 383
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getDynamicType:()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;
    MethodParameters:
      Name  Flags
      obj   

  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 387
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.containsKey:(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    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static com.oracle.truffle.api.object.Property getProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
    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 391
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            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    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static java.lang.Object[] getKeyArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
    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 395
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getKeyList:()Ljava/util/List;
            invokeinterface java.util.List.toArray:()[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;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.truffle.api.object.Property[] getPropertyArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)[Lcom/oracle/truffle/api/object/Property;
    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 399
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getPropertyList:()Ljava/util/List;
            iconst_0
            anewarray com.oracle.truffle.api.object.Property
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.Property[]
            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 java.lang.Object getOrNull(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=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
         0: .line 403
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;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    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static java.lang.Object getOrDefault(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;)Ljava/lang/Object;
    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 // java.lang.Object defaultValue
         0: .line 407
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            aload 2 /* defaultValue */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object defaultValue
        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  defaultValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      obj           
      key           
      defaultValue  

  public static int getIntOrDefault(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)I
    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 // int defaultValue
         0: .line 412
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            iload 2 /* defaultValue */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getIntOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)I
         1: ireturn
         2: .line 413
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
            pop
         3: .line 414
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // int defaultValue
        end local 1 // java.lang.Object key
        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           key  Ljava/lang/Object;
            0    4     2  defaultValue  I
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
              Name  Flags
      obj           
      key           
      defaultValue  

  public static int getObjectFlags(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    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 419
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getFlags:()I
            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;
    MethodParameters:
      Name  Flags
      obj   

  public static void setObjectFlags(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)V
    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 // int flags
         0: .line 423
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            iload 1 /* flags */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.setShapeFlags:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
            pop
         1: .line 424
            return
        end local 1 // int flags
        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  flags  I
    MethodParameters:
       Name  Flags
      obj    
      flags  

  public static void setPropertyFlags(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)V
    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 // int flags
         0: .line 427
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            iload 2 /* flags */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.setPropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)Z
            pop
         1: .line 428
            return
        end local 2 // int flags
        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  flags  I
    MethodParameters:
       Name  Flags
      obj    
      key    
      flags  

  public static int getPropertyFlags(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)I
    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 431
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            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;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static boolean updatePropertyFlags(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.util.function.IntUnaryOperator);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/util/function/IntUnaryOperator;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject obj
        start local 1 // java.lang.Object key
        start local 2 // java.util.function.IntUnaryOperator updateFunction
         0: .line 445
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            astore 3 /* uncached */
        start local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary uncached
         1: .line 446
            aload 3 /* uncached */
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 4 /* property */
        start local 4 // com.oracle.truffle.api.object.Property property
         2: .line 447
            aload 4 /* property */
            ifnonnull 4
         3: .line 448
            iconst_0
            ireturn
         4: .line 450
      StackMap locals: com.oracle.truffle.api.object.DynamicObjectLibrary com.oracle.truffle.api.object.Property
      StackMap stack:
            aload 4 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            istore 5 /* oldFlags */
        start local 5 // int oldFlags
         5: .line 451
            aload 2 /* updateFunction */
            iload 5 /* oldFlags */
            invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
            istore 6 /* newFlags */
        start local 6 // int newFlags
         6: .line 452
            iload 5 /* oldFlags */
            iload 6 /* newFlags */
            if_icmpne 8
         7: .line 453
            iconst_0
            ireturn
         8: .line 455
      StackMap locals: int int
      StackMap stack:
            aload 3 /* uncached */
            aload 0 /* obj */
            aload 1 /* key */
            iload 6 /* newFlags */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.setPropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)Z
            ireturn
        end local 6 // int newFlags
        end local 5 // int oldFlags
        end local 4 // com.oracle.truffle.api.object.Property property
        end local 3 // com.oracle.truffle.api.object.DynamicObjectLibrary uncached
        end local 2 // java.util.function.IntUnaryOperator updateFunction
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject obj
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0             obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    9     1             key  Ljava/lang/Object;
            0    9     2  updateFunction  Ljava/util/function/IntUnaryOperator;
            1    9     3        uncached  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            2    9     4        property  Lcom/oracle/truffle/api/object/Property;
            5    9     5        oldFlags  I
            6    9     6        newFlags  I
    MethodParameters:
                Name  Flags
      obj             
      key             
      updateFunction  

  public static boolean testProperties(com.oracle.truffle.api.object.DynamicObject, java.util.function.Predicate<com.oracle.truffle.api.object.Property>);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/function/Predicate;)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 // java.util.function.Predicate predicate
         0: .line 459
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* predicate */
            invokevirtual com.oracle.truffle.api.object.Shape.allPropertiesMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 1 // java.util.function.Predicate predicate
        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  predicate  Ljava/util/function/Predicate<Lcom/oracle/truffle/api/object/Property;>;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/function/Predicate<Lcom/oracle/truffle/api/object/Property;>;)Z
    MethodParameters:
           Name  Flags
      obj        
      predicate  

  public static boolean removeKey(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 463
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* obj */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.removeKey:(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    1     0   obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public static com.oracle.truffle.js.runtime.objects.JSSharedData getJSSharedData(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/objects/JSSharedData;
    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 467
            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.getSharedData:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/objects/JSSharedData;
            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   
}
SourceFile: "JSDynamicObject.java"
NestMembers:
  com.oracle.truffle.js.runtime.objects.JSDynamicObject$IsIdenticalOrUndefined
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final IsIdenticalOrUndefined = com.oracle.truffle.js.runtime.objects.JSDynamicObject$IsIdenticalOrUndefined of com.oracle.truffle.js.runtime.objects.JSDynamicObject
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)