public class com.oracle.truffle.js.nodes.access.WriteElementNode extends com.oracle.truffle.js.nodes.access.JSTargetableNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.access.WriteElementNode
  super_class: com.oracle.truffle.js.nodes.access.JSTargetableNode
{
  protected com.oracle.truffle.js.nodes.JavaScriptNode targetNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  protected com.oracle.truffle.js.nodes.JavaScriptNode indexNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.cast.ToArrayIndexNode toArrayIndexNode;
    descriptor: Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  protected com.oracle.truffle.js.nodes.JavaScriptNode valueNode;
    descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode typeCacheNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.access.RequireObjectCoercibleNode requireObjectCoercibleNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/RequireObjectCoercibleNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0010) ACC_FINAL

  final boolean isStrict;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean writeOwn;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  private byte indexState;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private static final byte INDEX_INT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final byte INDEX_OBJECT;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  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 131
            ldc Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
         3: .line 144
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.nodes.access.WriteElementNode create(com.oracle.truffle.js.runtime.JSContext, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // boolean isStrict
         0: .line 147
            aconst_null
            aconst_null
            aconst_null
            aload 0 /* context */
            iload 1 /* isStrict */
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 1 // boolean isStrict
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  isStrict  Z
    MethodParameters:
          Name  Flags
      context   
      isStrict  

  public static com.oracle.truffle.js.nodes.access.WriteElementNode create(com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // boolean isStrict
        start local 2 // boolean writeOwn
         0: .line 151
            aconst_null
            aconst_null
            aconst_null
            aload 0 /* context */
            iload 1 /* isStrict */
            iload 2 /* writeOwn */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 2 // boolean writeOwn
        end local 1 // boolean isStrict
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  isStrict  Z
            0    1     2  writeOwn  Z
    MethodParameters:
          Name  Flags
      context   
      isStrict  
      writeOwn  

  public static com.oracle.truffle.js.nodes.access.WriteElementNode create(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.runtime.JSContext, boolean);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
        start local 4 // boolean isStrict
         0: .line 155
            aload 0 /* targetNode */
            aload 1 /* indexNode */
            aload 2 /* valueNode */
            aload 3 /* context */
            iload 4 /* isStrict */
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 4 // boolean isStrict
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  targetNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     1   indexNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2   valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     3     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     4    isStrict  Z
    MethodParameters:
            Name  Flags
      targetNode  
      indexNode   
      valueNode   
      context     
      isStrict    

  private static com.oracle.truffle.js.nodes.access.WriteElementNode create(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        start local 3 // com.oracle.truffle.js.runtime.JSContext context
        start local 4 // boolean isStrict
        start local 5 // boolean writeOwn
         0: .line 159
            new com.oracle.truffle.js.nodes.access.WriteElementNode
            dup
            aload 0 /* targetNode */
            aload 1 /* indexNode */
            aload 2 /* valueNode */
            aload 3 /* context */
            iload 4 /* isStrict */
            iload 5 /* writeOwn */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)V
            areturn
        end local 5 // boolean writeOwn
        end local 4 // boolean isStrict
        end local 3 // com.oracle.truffle.js.runtime.JSContext context
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        end local 0 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  targetNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     1   indexNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2   valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     3     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     4    isStrict  Z
            0    1     5    writeOwn  Z
    MethodParameters:
            Name  Flags
      targetNode  
      indexNode   
      valueNode   
      context     
      isStrict    
      writeOwn    

  protected void <init>(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.runtime.JSContext, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
        start local 5 // boolean isStrict
        start local 6 // boolean writeOwn
         0: .line 162
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.access.JSTargetableNode.<init>:()V
         1: .line 165
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 2
            aload 2 /* indexNode */
            instanceof com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode$JSToPropertyKeyWrapperNode
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 167
      StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.nodes.JavaScriptNode com.oracle.truffle.js.runtime.JSContext int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* targetNode */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         3: .line 168
            aload 0 /* this */
            aload 2 /* indexNode */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         4: .line 169
            aload 0 /* this */
            aload 3 /* valueNode */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
         5: .line 170
            aload 0 /* this */
            aload 4 /* context */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         6: .line 171
            aload 0 /* this */
            iload 5 /* isStrict */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.isStrict:Z
         7: .line 172
            aload 0 /* this */
            iload 6 /* writeOwn */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.writeOwn:Z
         8: .line 173
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.nodes.access.RequireObjectCoercibleNode.create:()Lcom/oracle/truffle/js/nodes/access/RequireObjectCoercibleNode;
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercibleNode:Lcom/oracle/truffle/js/nodes/access/RequireObjectCoercibleNode;
         9: .line 174
            return
        end local 6 // boolean writeOwn
        end local 5 // boolean isStrict
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode valueNode
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode indexNode
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode targetNode
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   10     1  targetNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   10     2   indexNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   10     3   valueNode  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0   10     4     context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     5    isStrict  Z
            0   10     6    writeOwn  Z
    MethodParameters:
            Name  Flags
      targetNode  
      indexNode   
      valueNode   
      context     
      isStrict    
      writeOwn    

  protected final com.oracle.truffle.js.nodes.cast.ToArrayIndexNode toArrayIndexNode();
    descriptor: ()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 177
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            ifnonnull 3
         1: .line 178
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 179
            aload 0 /* this */
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.create:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.cast.ToArrayIndexNode
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
         3: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  protected final void requireObjectCoercible(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // int index
         0: .line 186
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercibleNode:Lcom/oracle/truffle/js/nodes/access/RequireObjectCoercibleNode;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.RequireObjectCoercibleNode.executeVoid:(Ljava/lang/Object;)V
         1: .line 187
            goto 4
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.runtime.JSException
         2: pop
         3: .line 188
            iload 2 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 1 /* target */
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCannotSetProperty:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         4: .line 190
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    5     1  target  Ljava/lang/Object;
            0    5     2   index  I
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.runtime.JSException
    MethodParameters:
        Name  Flags
      target  
      index   

  protected final void requireObjectCoercible(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object index
         0: .line 194
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercibleNode:Lcom/oracle/truffle/js/nodes/access/RequireObjectCoercibleNode;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.RequireObjectCoercibleNode.executeVoid:(Ljava/lang/Object;)V
         1: .line 195
            goto 4
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.runtime.JSException
         2: pop
         3: .line 196
            aload 2 /* index */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 1 /* target */
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCannotSetProperty:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         4: .line 198
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    5     1  target  Ljava/lang/Object;
            0    5     2   index  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.js.runtime.JSException
    MethodParameters:
        Name  Flags
      target  
      index   

  public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Class tag
         0: .line 202
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WriteElementTag;
            if_acmpne 2
         1: .line 203
            iconst_1
            ireturn
         2: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tag */
            invokespecial com.oracle.truffle.js.nodes.access.JSTargetableNode.hasTag:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    3     1   tag  Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
    MethodParameters:
      Name  Flags
      tag   

  public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.util.Set materializedTags
         0: .line 211
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.materializationNeeded:()Z
            ifeq 24
            aload 1 /* materializedTags */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WriteElementTag;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 24
         1: .line 212
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode.createForInput:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         4: astore 2 /* clonedTarget */
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode clonedTarget
         5: .line 213
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 6
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 7
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
         6: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode.createForInput:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
         8: astore 3 /* clonedIndex */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode clonedIndex
         9: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 10
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 11
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
        10: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode.createForInput:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
      StackMap locals:
      StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode
        12: astore 4 /* clonedValue */
        start local 4 // com.oracle.truffle.js.nodes.JavaScriptNode clonedValue
        13: .line 215
            aload 2 /* clonedTarget */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 15
            aload 3 /* clonedIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 15
            aload 4 /* clonedValue */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 15
        14: .line 216
            aload 0 /* this */
            areturn
        15: .line 218
      StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 2 /* clonedTarget */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 17
        16: .line 219
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 2 /* clonedTarget */
        17: .line 221
      StackMap locals:
      StackMap stack:
            aload 3 /* clonedIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 19
        18: .line 222
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 3 /* clonedIndex */
        19: .line 224
      StackMap locals:
      StackMap stack:
            aload 4 /* clonedValue */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            if_acmpne 21
        20: .line 225
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 4 /* clonedValue */
        21: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* clonedTarget */
            aload 3 /* clonedIndex */
            aload 4 /* clonedValue */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.createMaterialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            astore 5 /* cloned */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode cloned
        22: .line 228
            aload 0 /* this */
            aload 5 /* cloned */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.transferSourceSectionAndTags:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
        23: .line 229
            aload 5 /* cloned */
            areturn
        end local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode cloned
        end local 4 // com.oracle.truffle.js.nodes.JavaScriptNode clonedValue
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode clonedIndex
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode clonedTarget
        24: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   25     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            5   24     2      clonedTarget  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            9   24     3       clonedIndex  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           13   24     4       clonedValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
           22   24     5            cloned  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  private boolean materializationNeeded();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 236
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 1
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            ifnull 3
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasSourceSection:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  protected com.oracle.truffle.js.nodes.access.WriteElementNode createMaterialized(com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode newTarget
        start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode newIndex
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode newValue
         0: .line 240
            aload 1 /* newTarget */
            aload 2 /* newIndex */
            aload 3 /* newValue */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.isStrict:()Z
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.writeOwn:()Z
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode newValue
        end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode newIndex
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode newTarget
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    1     1  newTarget  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     2   newIndex  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            0    1     3   newValue  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
           Name  Flags
      newTarget  
      newIndex   
      newValue   

  public java.lang.Object evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 245
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 250
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateTarget:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 2 /* target */
        start local 2 // java.lang.Object target
         1: .line 251
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            aload 2 /* target */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateReceiver:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTarget:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    2     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1    2     2  target  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      frame  

  public int executeInt(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 256
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateTarget:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 2 /* target */
        start local 2 // java.lang.Object target
         1: .line 257
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            aload 2 /* target */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateReceiver:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    2     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1    2     2  target  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      frame  

  public double executeDouble(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 262
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateTarget:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 2 /* target */
        start local 2 // java.lang.Object target
         1: .line 263
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            aload 2 /* target */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.evaluateReceiver:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    2     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1    2     2  target  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
       Name  Flags
      frame  

  public java.lang.Object executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
         0: .line 268
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 2 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTarget:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    1     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    1     2  target  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      frame   
      target  

  public java.lang.Object executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object receiver
         0: .line 272
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
            istore 4 /* is */
        start local 4 // byte is
         1: .line 273
            iload 4 /* is */
            ifne 10
         2: .line 274
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 275
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
         4: .line 276
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 277
            aload 5 /* index */
            instanceof java.lang.Integer
            ifeq 8
         6: .line 278
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         7: .line 279
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 5 /* index */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndex:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
         8: .line 281
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         9: .line 282
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndex:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object index
        10: .line 284
      StackMap locals:
      StackMap stack:
            iload 4 /* is */
            iconst_1
            if_icmpne 19
        11: .line 287
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 5 /* index */
        start local 5 // int index
        12: .line 288
            goto 17
        end local 5 // int index
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
        13: astore 6 /* e */
        start local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        14: .line 289
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
        15: .line 290
            aload 0 /* this */
            aload 2 /* target */
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 291
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndex:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        start local 5 // int index
        17: .line 293
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* target */
            iload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;I)V
        18: .line 294
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            iload 5 /* index */
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndex:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // int index
        19: .line 296
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 20
            iload 4 /* is */
            iconst_2
            if_icmpeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
        21: .line 298
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        22: .line 299
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndex:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object index
        end local 4 // byte is
        end local 3 // java.lang.Object receiver
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   23     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   23     2    target  Ljava/lang/Object;
            0   23     3  receiver  Ljava/lang/Object;
            1   23     4        is  B
            4   10     5     index  Ljava/lang/Object;
           12   13     5     index  I
           17   19     5     index  I
           14   17     6         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
           21   23     5     index  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          11    12      13  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      receiver  

  public int executeWithTargetInt(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object receiver
         0: .line 304
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
            istore 4 /* is */
        start local 4 // byte is
         1: .line 305
            iload 4 /* is */
            ifne 10
         2: .line 306
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 307
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
         4: .line 308
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 309
            aload 5 /* index */
            instanceof java.lang.Integer
            ifeq 8
         6: .line 310
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         7: .line 311
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 5 /* index */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)I
            ireturn
         8: .line 313
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         9: .line 314
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 5 // java.lang.Object index
        10: .line 316
      StackMap locals:
      StackMap stack:
            iload 4 /* is */
            iconst_1
            if_icmpne 19
        11: .line 319
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 5 /* index */
        start local 5 // int index
        12: .line 320
            goto 17
        end local 5 // int index
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
        13: astore 6 /* e */
        start local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        14: .line 321
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
        15: .line 322
            aload 0 /* this */
            aload 2 /* target */
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 323
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        start local 5 // int index
        17: .line 325
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* target */
            iload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;I)V
        18: .line 326
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            iload 5 /* index */
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)I
            ireturn
        end local 5 // int index
        19: .line 328
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 20
            iload 4 /* is */
            iconst_2
            if_icmpeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
        21: .line 330
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        22: .line 331
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 5 // java.lang.Object index
        end local 4 // byte is
        end local 3 // java.lang.Object receiver
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   23     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   23     2    target  Ljava/lang/Object;
            0   23     3  receiver  Ljava/lang/Object;
            1   23     4        is  B
            4   10     5     index  Ljava/lang/Object;
           12   13     5     index  I
           17   19     5     index  I
           14   17     6         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
           21   23     5     index  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          11    12      13  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      receiver  

  public double executeWithTargetDouble(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object receiver
         0: .line 336
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
            istore 4 /* is */
        start local 4 // byte is
         1: .line 337
            iload 4 /* is */
            ifne 10
         2: .line 338
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 339
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
         4: .line 340
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 341
            aload 5 /* index */
            instanceof java.lang.Integer
            ifeq 8
         6: .line 342
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         7: .line 343
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 5 /* index */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)D
            dreturn
         8: .line 345
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
         9: .line 346
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 5 // java.lang.Object index
        10: .line 348
      StackMap locals:
      StackMap stack:
            iload 4 /* is */
            iconst_1
            if_icmpne 19
        11: .line 351
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 5 /* index */
        start local 5 // int index
        12: .line 352
            goto 17
        end local 5 // int index
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
        13: astore 6 /* e */
        start local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        14: .line 353
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexState:B
        15: .line 354
            aload 0 /* this */
            aload 2 /* target */
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        16: .line 355
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 6 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 6 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        start local 5 // int index
        17: .line 357
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* target */
            iload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;I)V
        18: .line 358
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            iload 5 /* index */
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)D
            dreturn
        end local 5 // int index
        19: .line 360
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 20
            iload 4 /* is */
            iconst_2
            if_icmpeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* index */
        start local 5 // java.lang.Object index
        21: .line 362
            aload 0 /* this */
            aload 2 /* target */
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.requireObjectCoercible:(Ljava/lang/Object;Ljava/lang/Object;)V
        22: .line 363
            aload 0 /* this */
            aload 1 /* frame */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.toArrayIndexNode:()Lcom/oracle/truffle/js/nodes/cast/ToArrayIndexNode;
            aload 5 /* index */
            invokevirtual com.oracle.truffle.js.nodes.cast.ToArrayIndexNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 5 // java.lang.Object index
        end local 4 // byte is
        end local 3 // java.lang.Object receiver
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   23     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   23     2    target  Ljava/lang/Object;
            0   23     3  receiver  Ljava/lang/Object;
            1   23     4        is  B
            4   10     5     index  Ljava/lang/Object;
           12   13     5     index  I
           17   19     5     index  I
           14   17     6         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
           21   23     5     index  Ljava/lang/Object;
      Exception table:
        from    to  target  type
          11    12      13  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      receiver  

  protected java.lang.Object executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object index
        start local 4 // java.lang.Object receiver
         0: .line 368
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         1: .line 369
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* index */
            aload 5 /* value */
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 370
            aload 5 /* value */
            areturn
        end local 5 // java.lang.Object value
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    3     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    3     2    target  Ljava/lang/Object;
            0    3     3     index  Ljava/lang/Object;
            0    3     4  receiver  Ljava/lang/Object;
            1    3     5     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  protected java.lang.Object executeWithTargetAndIndex(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, int, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // int index
        start local 4 // java.lang.Object receiver
         0: .line 374
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         1: .line 375
            aload 0 /* this */
            aload 2 /* target */
            iload 3 /* index */
            aload 5 /* value */
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         2: .line 376
            aload 5 /* value */
            areturn
        end local 5 // java.lang.Object value
        end local 4 // java.lang.Object receiver
        end local 3 // int index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    3     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    3     2    target  Ljava/lang/Object;
            0    3     3     index  I
            0    3     4  receiver  Ljava/lang/Object;
            1    3     5     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  protected int executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object index
        start local 4 // java.lang.Object receiver
         0: .line 381
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 5 /* value */
        start local 5 // int value
         1: .line 382
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* index */
            iload 5 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 383
            iload 5 /* value */
         3: ireturn
        end local 5 // int value
         4: .line 384
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
            astore 5 /* e */
        start local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
         5: .line 385
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* index */
            aload 5 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 386
            aload 5 /* e */
            athrow
        end local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    7     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    7     2    target  Ljava/lang/Object;
            0    7     3     index  Ljava/lang/Object;
            0    7     4  receiver  Ljava/lang/Object;
            1    4     5     value  I
            5    7     5         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
      Exception table:
        from    to  target  type
           0     3       4  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  protected int executeWithTargetAndIndexInt(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, int, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // int index
        start local 4 // java.lang.Object receiver
         0: .line 392
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeInt:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            istore 5 /* value */
        start local 5 // int value
         1: .line 393
            aload 0 /* this */
            aload 2 /* target */
            iload 3 /* index */
            iload 5 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         2: .line 394
            iload 5 /* value */
         3: ireturn
        end local 5 // int value
         4: .line 395
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
            astore 5 /* e */
        start local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
         5: .line 396
            aload 0 /* this */
            aload 2 /* target */
            iload 3 /* index */
            aload 5 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         6: .line 397
            aload 5 /* e */
            athrow
        end local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        end local 4 // java.lang.Object receiver
        end local 3 // int index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    7     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    7     2    target  Ljava/lang/Object;
            0    7     3     index  I
            0    7     4  receiver  Ljava/lang/Object;
            1    4     5     value  I
            5    7     5         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
      Exception table:
        from    to  target  type
           0     3       4  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  protected double executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // java.lang.Object index
        start local 4 // java.lang.Object receiver
         0: .line 403
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;)D
            dstore 5 /* value */
        start local 5 // double value
         1: .line 404
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* index */
            dload 5 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 405
            dload 5 /* value */
         3: dreturn
        end local 5 // double value
         4: .line 406
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
            astore 5 /* e */
        start local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
         5: .line 407
            aload 0 /* this */
            aload 2 /* target */
            aload 3 /* index */
            aload 5 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 408
            aload 5 /* e */
            athrow
        end local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    7     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    7     2    target  Ljava/lang/Object;
            0    7     3     index  Ljava/lang/Object;
            0    7     4  receiver  Ljava/lang/Object;
            1    4     5     value  D
            5    7     5         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
      Exception table:
        from    to  target  type
           0     3       4  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  protected double executeWithTargetAndIndexDouble(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object, int, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;ILjava/lang/Object;)D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object target
        start local 3 // int index
        start local 4 // java.lang.Object receiver
         0: .line 414
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeDouble:(Lcom/oracle/truffle/api/frame/VirtualFrame;)D
            dstore 5 /* value */
        start local 5 // double value
         1: .line 415
            aload 0 /* this */
            aload 2 /* target */
            iload 3 /* index */
            dload 5 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         2: .line 416
            dload 5 /* value */
         3: dreturn
        end local 5 // double value
         4: .line 417
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
            astore 5 /* e */
        start local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
         5: .line 418
            aload 0 /* this */
            aload 2 /* target */
            iload 3 /* index */
            aload 5 /* e */
            invokevirtual com.oracle.truffle.api.nodes.UnexpectedResultException.getResult:()Ljava/lang/Object;
            aload 4 /* receiver */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         6: .line 419
            aload 5 /* e */
            athrow
        end local 5 // com.oracle.truffle.api.nodes.UnexpectedResultException e
        end local 4 // java.lang.Object receiver
        end local 3 // int index
        end local 2 // java.lang.Object target
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    7     1     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    7     2    target  Ljava/lang/Object;
            0    7     3     index  I
            0    7     4  receiver  Ljava/lang/Object;
            1    4     5     value  D
            5    7     5         e  Lcom/oracle/truffle/api/nodes/UnexpectedResultException;
      Exception table:
        from    to  target  type
           0     3       4  Class com.oracle.truffle.api.nodes.UnexpectedResultException
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    MethodParameters:
          Name  Flags
      frame     
      target    
      index     
      receiver  

  public final void executeWithTargetAndIndexAndValue(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object index
        start local 3 // java.lang.Object value
         0: .line 424
            aload 0 /* this */
            aload 1 /* target */
            aload 2 /* index */
            aload 3 /* value */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 425
            return
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    2     1  target  Ljava/lang/Object;
            0    2     2   index  Ljava/lang/Object;
            0    2     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  public final void executeWithTargetAndIndexAndValue(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // int index
        start local 3 // java.lang.Object value
         0: .line 428
            aload 0 /* this */
            aload 1 /* target */
            iload 2 /* index */
            aload 3 /* value */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.executeWithTargetAndIndexAndValue:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
         1: .line 429
            return
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    2     1  target  Ljava/lang/Object;
            0    2     2   index  I
            0    2     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  public final void executeWithTargetAndIndexAndValue(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object index
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
         0: .line 433
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.typeCacheNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* c */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
         1: goto 7
         2: .line 434
      StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode
      StackMap stack:
            aload 5 /* c */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.guard:(Ljava/lang/Object;)Z
            istore 6 /* guard */
        start local 6 // boolean guard
         3: .line 435
            iload 6 /* guard */
            ifeq 6
         4: .line 436
            aload 5 /* c */
            aload 1 /* target */
            aload 2 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.executeWithTargetAndIndexUnguarded:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
         5: .line 437
            return
        end local 6 // boolean guard
         6: .line 433
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.typeCacheNext:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 5 /* c */
            ifnonnull 2
        end local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
         8: .line 440
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 441
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.specialize:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* specialization */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode specialization
        10: .line 442
            aload 5 /* specialization */
            aload 1 /* target */
            aload 2 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.executeWithTargetAndIndexUnguarded:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
        11: .line 443
            return
        end local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode specialization
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   12     1          target  Ljava/lang/Object;
            0   12     2           index  Ljava/lang/Object;
            0   12     3           value  Ljava/lang/Object;
            0   12     4        receiver  Ljava/lang/Object;
            1    8     5               c  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            3    6     6           guard  Z
           10   12     5  specialization  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
          Name  Flags
      target    
      index     
      value     
      receiver  

  public final void executeWithTargetAndIndexAndValue(java.lang.Object, int, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
        start local 2 // int index
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
         0: .line 447
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.typeCacheNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* c */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
         1: goto 7
         2: .line 448
      StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode
      StackMap stack:
            aload 5 /* c */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.guard:(Ljava/lang/Object;)Z
            istore 6 /* guard */
        start local 6 // boolean guard
         3: .line 449
            iload 6 /* guard */
            ifeq 6
         4: .line 450
            aload 5 /* c */
            aload 1 /* target */
            iload 2 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.executeWithTargetAndIndexUnguarded:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
         5: .line 451
            return
        end local 6 // boolean guard
         6: .line 447
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.typeCacheNext:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 5 /* c */
            ifnonnull 2
        end local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
         8: .line 454
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 455
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.specialize:(Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 5 /* specialization */
        start local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode specialization
        10: .line 456
            aload 5 /* specialization */
            aload 1 /* target */
            iload 2 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.executeWithTargetAndIndexUnguarded:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)V
        11: .line 457
            return
        end local 5 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode specialization
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   12     1          target  Ljava/lang/Object;
            0   12     2           index  I
            0   12     3           value  Ljava/lang/Object;
            0   12     4        receiver  Ljava/lang/Object;
            1    8     5               c  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            3    6     6           guard  Z
           10   12     5  specialization  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
          Name  Flags
      target    
      index     
      value     
      receiver  

  private com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode specialize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Object target
         0: .line 460
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 461
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.Lock lock
         2: .line 462
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         3: .line 464
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.typeCacheNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 3 /* currentHead */
        start local 3 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode currentHead
         4: .line 465
            aload 3 /* currentHead */
            astore 4 /* c */
        start local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
         5: goto 11
         6: .line 466
      StackMap locals: java.util.concurrent.locks.Lock com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode
      StackMap stack:
            aload 4 /* c */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.guard:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 467
            aload 4 /* c */
            astore 6
         8: .line 479
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 467
            aload 6
            areturn
        10: .line 465
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.typeCacheNext:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 4 /* c */
      StackMap locals:
      StackMap stack:
        11: aload 4 /* c */
            ifnonnull 6
        end local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode c
        12: .line 471
            aload 1 /* target */
            aload 3 /* currentHead */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.makeTypeCacheNode:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            astore 4 /* newCacheNode */
        start local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode newCacheNode
        13: .line 472
            aload 0 /* this */
            aload 4 /* newCacheNode */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            pop
        14: .line 473
            aload 0 /* this */
            aload 4 /* newCacheNode */
            putfield com.oracle.truffle.js.nodes.access.WriteElementNode.typeCacheNode:Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
        15: .line 474
            aload 4 /* newCacheNode */
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode.guard:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 475
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        17: .line 477
      StackMap locals:
      StackMap stack:
            aload 4 /* newCacheNode */
            astore 6
        18: .line 479
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 477
            aload 6
            areturn
        end local 4 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode newCacheNode
        end local 3 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode currentHead
        20: .line 478
      StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode java.lang.Object java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 5
        21: .line 479
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        22: .line 480
            aload 5
            athrow
        end local 2 // java.util.concurrent.locks.Lock lock
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0   23     1        target  Ljava/lang/Object;
            2   23     2          lock  Ljava/util/concurrent/locks/Lock;
            4   20     3   currentHead  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
            5   12     4             c  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
           13   20     4  newCacheNode  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
      Exception table:
        from    to  target  type
           3     8      20  any
          10    18      20  any
    MethodParameters:
        Name  Flags
      target  

  private static com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode makeTypeCacheNode(java.lang.Object, com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode next
         0: .line 485
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 486
            new com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectWriteElementTypeCacheNode
            dup
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectWriteElementTypeCacheNode.<init>:(Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
         2: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 488
            new com.oracle.truffle.js.nodes.access.WriteElementNode$StringWriteElementTypeCacheNode
            dup
            aload 0 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$StringWriteElementTypeCacheNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
         4: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            instanceof java.lang.Boolean
            ifeq 6
         5: .line 490
            new com.oracle.truffle.js.nodes.access.WriteElementNode$BooleanWriteElementTypeCacheNode
            dup
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$BooleanWriteElementTypeCacheNode.<init>:(Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
         6: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            instanceof java.lang.Number
            ifeq 8
         7: .line 492
            new com.oracle.truffle.js.nodes.access.WriteElementNode$NumberWriteElementTypeCacheNode
            dup
            aload 0 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$NumberWriteElementTypeCacheNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
         8: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 10
         9: .line 494
            new com.oracle.truffle.js.nodes.access.WriteElementNode$SymbolWriteElementTypeCacheNode
            dup
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$SymbolWriteElementTypeCacheNode.<init>:(Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
        10: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            instanceof com.oracle.truffle.js.runtime.BigInt
            ifeq 12
        11: .line 496
            new com.oracle.truffle.js.nodes.access.WriteElementNode$BigIntWriteElementTypeCacheNode
            dup
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$BigIntWriteElementTypeCacheNode.<init>:(Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
        12: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifeq 15
        13: .line 498
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 14
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 499
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.WriteElementNode$TruffleObjectWriteElementTypeCacheNode
            dup
            aload 0 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$TruffleObjectWriteElementTypeCacheNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
        15: .line 501
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.access.WriteElementNode.$assertionsDisabled:Z
            ifne 16
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isJavaPrimitive:(Ljava/lang/Object;)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 502
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.WriteElementNode$JavaObjectWriteElementTypeCacheNode
            dup
            aload 0 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$JavaObjectWriteElementTypeCacheNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;)V
            areturn
        end local 1 // com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode next
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0  target  Ljava/lang/Object;
            0   17     1    next  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$WriteElementTypeCacheNode;
    MethodParameters:
        Name  Flags
      target  
      next    

  static com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode makeArrayCacheNode(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // com.oracle.truffle.js.runtime.array.ScriptArray array
        start local 2 // com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode next
         0: .line 701
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.isJSSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArgumentsArray.isJSSlowArgumentsObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 2
         1: .line 702
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
         2: .line 705
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isLengthNotWritable:()Z
            ifne 3
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isExtensible:()Z
            ifne 4
         3: .line 707
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
         4: .line 709
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.LazyRegexResultArray
            ifeq 6
         5: .line 710
            new com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
         6: .line 711
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.LazyRegexResultIndicesArray
            ifeq 8
         7: .line 712
            new com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultIndicesArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultIndicesArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
         8: .line 713
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractConstantArray
            ifeq 10
         9: .line 714
            new com.oracle.truffle.js.nodes.access.WriteElementNode$ConstantArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$ConstantArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        10: .line 715
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.HolesIntArray
            ifeq 12
        11: .line 716
            new com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        12: .line 717
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray
            ifeq 14
        13: .line 718
            new com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        14: .line 719
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.HolesJSObjectArray
            ifeq 16
        15: .line 720
            new com.oracle.truffle.js.nodes.access.WriteElementNode$HolesJSObjectArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$HolesJSObjectArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        16: .line 721
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray
            ifeq 18
        17: .line 722
            new com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        18: .line 723
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractIntArray
            ifeq 20
        19: .line 724
            new com.oracle.truffle.js.nodes.access.WriteElementNode$IntArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$IntArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        20: .line 725
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray
            ifeq 22
        21: .line 726
            new com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        22: .line 727
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractObjectArray
            ifeq 24
        23: .line 728
            new com.oracle.truffle.js.nodes.access.WriteElementNode$ObjectArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$ObjectArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        24: .line 729
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractJSObjectArray
            ifeq 26
        25: .line 730
            new com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        26: .line 731
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractWritableArray
            ifeq 28
        27: .line 732
            new com.oracle.truffle.js.nodes.access.WriteElementNode$WritableArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$WritableArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        28: .line 733
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray
            ifeq 40
        29: .line 734
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$AbstractUint32Array
            ifeq 31
        30: .line 735
            new com.oracle.truffle.js.nodes.access.WriteElementNode$Uint32ArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$Uint32ArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        31: .line 736
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$AbstractUint8ClampedArray
            ifeq 33
        32: .line 737
            new com.oracle.truffle.js.nodes.access.WriteElementNode$Uint8ClampedArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$Uint8ClampedArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        33: .line 738
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray
            ifeq 35
        34: .line 739
            new com.oracle.truffle.js.nodes.access.WriteElementNode$TypedIntArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$TypedIntArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        35: .line 740
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$TypedFloatArray
            ifeq 37
        36: .line 741
            new com.oracle.truffle.js.nodes.access.WriteElementNode$TypedFloatArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$TypedFloatArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        37: .line 742
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            instanceof com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray
            ifeq 39
        38: .line 743
            new com.oracle.truffle.js.nodes.access.WriteElementNode$TypedBigIntArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$TypedBigIntArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        39: .line 745
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        40: .line 748
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode
            dup
            aload 1 /* array */
            aload 2 /* next */
            invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
            areturn
        end local 2 // com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode next
        end local 1 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   41     0  target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   41     1   array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0   41     2    next  Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;
    MethodParameters:
        Name  Flags
      target  
      array   
      next    

  public com.oracle.truffle.js.nodes.JavaScriptNode getTarget();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1851
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  public com.oracle.truffle.js.nodes.JavaScriptNode getElement();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1855
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  public com.oracle.truffle.js.nodes.JavaScriptNode getValue();
    descriptor: ()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1859
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  public com.oracle.truffle.js.runtime.JSContext getContext();
    descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1863
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  public boolean isStrict();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1867
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.isStrict:Z
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  public boolean writeOwn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1871
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.writeOwn:Z
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  boolean isSuperProperty();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
         0: .line 1875
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.access.SuperPropertyReferenceNode
            ireturn
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;

  protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.util.Set materializedTags
         0: .line 1880
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.targetNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.indexNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.isStrict:()Z
         1: .line 1881
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode.writeOwn:()Z
         2: .line 1880
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;ZZ)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    3     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  public boolean isResultAlwaysOfType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
        start local 1 // java.lang.Class clazz
         0: .line 1886
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.WriteElementNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* clazz */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.isResultAlwaysOfType:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.js.nodes.access.WriteElementNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            0    1     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public static com.oracle.truffle.js.nodes.access.WriteElementNode createCachedInterop(com.oracle.truffle.api.TruffleLanguage$LanguageReference<com.oracle.truffle.js.lang.JavaScriptLanguage>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
         0: .line 1890
            aload 0 /* languageRef */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$LanguageReference.get:()Lcom/oracle/truffle/api/TruffleLanguage;
            checkcast com.oracle.truffle.js.lang.JavaScriptLanguage
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            iconst_1
            invokestatic com.oracle.truffle.js.nodes.access.WriteElementNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$LanguageReference languageRef
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  languageRef  Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<Lcom/oracle/truffle/js/lang/JavaScriptLanguage;>;)Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
    MethodParameters:
             Name  Flags
      languageRef  
}
SourceFile: "WriteElementNode.java"
NestMembers:
  com.oracle.truffle.js.nodes.access.WriteElementNode$AbstractTypedIntArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayClassGuardCachedArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$BigIntWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$BooleanWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ConstantArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$HolesJSObjectArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$IntArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$JavaObjectWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultIndicesArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$NumberWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ObjectArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$StringWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$SymbolWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$ToPropertyKeyCachedWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$TruffleObjectWriteElementTypeCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$TypedBigIntArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$TypedFloatArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$TypedIntArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$Uint32ArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$Uint8ClampedArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$WritableArrayWriteElementCacheNode  com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  private abstract AbstractTypedIntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$AbstractTypedIntArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private abstract ArrayClassGuardCachedArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayClassGuardCachedArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  abstract ArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private BigIntWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$BigIntWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private BooleanWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$BooleanWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private ConstantArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ConstantArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private DoubleArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private ExactArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ExactArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private HolesDoubleArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private HolesIntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private HolesJSObjectArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesJSObjectArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private HolesObjectArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private IntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$IntArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private JSObjectArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private JSObjectWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$JSObjectWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private JavaObjectWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$JavaObjectWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private LazyRegexResultArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private LazyRegexResultIndicesArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$LazyRegexResultIndicesArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private NumberWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$NumberWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private ObjectArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ObjectArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private abstract RecursiveCachedArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private StringWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$StringWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private SymbolWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$SymbolWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private abstract ToPropertyKeyCachedWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ToPropertyKeyCachedWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  TruffleObjectWriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$TruffleObjectWriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private TypedBigIntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$TypedBigIntArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private TypedFloatArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$TypedFloatArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private TypedIntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$TypedIntArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private Uint32ArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$Uint32ArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private Uint8ClampedArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$Uint8ClampedArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  private WritableArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$WritableArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  abstract WriteElementTypeCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$WriteElementTypeCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
  public abstract JSToPropertyKeyWrapperNode = com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode$JSToPropertyKeyWrapperNode of com.oracle.truffle.js.nodes.cast.JSToPropertyKeyNode
  public final WriteElementTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$WriteElementTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public abstract AbstractUint32Array = com.oracle.truffle.js.runtime.array.TypedArray$AbstractUint32Array of com.oracle.truffle.js.runtime.array.TypedArray
  public abstract AbstractUint8ClampedArray = com.oracle.truffle.js.runtime.array.TypedArray$AbstractUint8ClampedArray of com.oracle.truffle.js.runtime.array.TypedArray
  public abstract TypedBigIntArray = com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray of com.oracle.truffle.js.runtime.array.TypedArray
  public abstract TypedFloatArray = com.oracle.truffle.js.runtime.array.TypedArray$TypedFloatArray of com.oracle.truffle.js.runtime.array.TypedArray
  public abstract TypedIntArray = com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray of com.oracle.truffle.js.runtime.array.TypedArray