public final class com.oracle.truffle.js.builtins.helper.SharedMemorySync
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.builtins.helper.SharedMemorySync
  super_class: java.lang.Object
{
  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 60
            ldc Lcom/oracle/truffle/js/builtins/helper/SharedMemorySync;
            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.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.builtins.helper.SharedMemorySync this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            return
        end local 0 // com.oracle.truffle.js.builtins.helper.SharedMemorySync this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/builtins/helper/SharedMemorySync;

  public static int doVolatileGet(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // int intArrayOffset
         0: .line 69
            invokestatic com.oracle.truffle.js.runtime.util.Fences.acquireFence:()V
         1: .line 70
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.typedArrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/TypedArray;
            astore 2 /* array */
        start local 2 // com.oracle.truffle.js.runtime.array.TypedArray array
         2: .line 71
            aload 2 /* array */
            checkcast com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray
            astore 3 /* typedArray */
        start local 3 // com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray typedArray
         3: .line 72
            aload 3 /* typedArray */
            aload 0 /* target */
            iload 1 /* intArrayOffset */
            invokevirtual com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray.getInt:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            ireturn
        end local 3 // com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray typedArray
        end local 2 // com.oracle.truffle.js.runtime.array.TypedArray array
        end local 1 // int intArrayOffset
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1  intArrayOffset  I
            2    4     2           array  Lcom/oracle/truffle/js/runtime/array/TypedArray;
            3    4     3      typedArray  Lcom/oracle/truffle/js/runtime/array/TypedArray$TypedIntArray<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      target          
      intArrayOffset  

  public static com.oracle.truffle.js.runtime.BigInt doVolatileGetBigInt(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // int intArrayOffset
         0: .line 78
            invokestatic com.oracle.truffle.js.runtime.util.Fences.acquireFence:()V
         1: .line 79
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.typedArrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/TypedArray;
            astore 2 /* array */
        start local 2 // com.oracle.truffle.js.runtime.array.TypedArray array
         2: .line 80
            aload 2 /* array */
            checkcast com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray
            astore 3 /* typedArray */
        start local 3 // com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray typedArray
         3: .line 81
            aload 3 /* typedArray */
            aload 0 /* target */
            iload 1 /* intArrayOffset */
            invokevirtual com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray.getBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;I)Lcom/oracle/truffle/js/runtime/BigInt;
            areturn
        end local 3 // com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray typedArray
        end local 2 // com.oracle.truffle.js.runtime.array.TypedArray array
        end local 1 // int intArrayOffset
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     1  intArrayOffset  I
            2    4     2           array  Lcom/oracle/truffle/js/runtime/array/TypedArray;
            3    4     3      typedArray  Lcom/oracle/truffle/js/runtime/array/TypedArray$TypedBigIntArray<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      target          
      intArrayOffset  

  public static void doVolatilePut(com.oracle.truffle.api.object.DynamicObject, int, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // int index
        start local 2 // int value
         0: .line 86
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.typedArrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/TypedArray;
            astore 3 /* array */
        start local 3 // com.oracle.truffle.js.runtime.array.TypedArray array
         1: .line 87
            aload 3 /* array */
            checkcast com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray
            astore 4 /* typedArray */
        start local 4 // com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray typedArray
         2: .line 88
            aload 4 /* typedArray */
            aload 0 /* target */
            iload 1 /* index */
            iload 2 /* value */
            invokevirtual com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray.setInt:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         3: .line 89
            invokestatic com.oracle.truffle.js.runtime.util.Fences.releaseFence:()V
         4: .line 90
            return
        end local 4 // com.oracle.truffle.js.runtime.array.TypedArray$TypedIntArray typedArray
        end local 3 // com.oracle.truffle.js.runtime.array.TypedArray array
        end local 2 // int value
        end local 1 // int index
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1       index  I
            0    5     2       value  I
            1    5     3       array  Lcom/oracle/truffle/js/runtime/array/TypedArray;
            2    5     4  typedArray  Lcom/oracle/truffle/js/runtime/array/TypedArray$TypedIntArray<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  public static void doVolatilePutBigInt(com.oracle.truffle.api.object.DynamicObject, int, com.oracle.truffle.js.runtime.BigInt);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject target
        start local 1 // int index
        start local 2 // com.oracle.truffle.js.runtime.BigInt value
         0: .line 94
            aload 0 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.typedArrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/TypedArray;
            astore 3 /* array */
        start local 3 // com.oracle.truffle.js.runtime.array.TypedArray array
         1: .line 95
            aload 3 /* array */
            checkcast com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray
            astore 4 /* typedArray */
        start local 4 // com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray typedArray
         2: .line 96
            aload 4 /* typedArray */
            aload 0 /* target */
            iload 1 /* index */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray.setBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;)V
         3: .line 97
            invokestatic com.oracle.truffle.js.runtime.util.Fences.releaseFence:()V
         4: .line 98
            return
        end local 4 // com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray typedArray
        end local 3 // com.oracle.truffle.js.runtime.array.TypedArray array
        end local 2 // com.oracle.truffle.js.runtime.BigInt value
        end local 1 // int index
        end local 0 // com.oracle.truffle.api.object.DynamicObject target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1       index  I
            0    5     2       value  Lcom/oracle/truffle/js/runtime/BigInt;
            1    5     3       array  Lcom/oracle/truffle/js/runtime/array/TypedArray;
            2    5     4  typedArray  Lcom/oracle/truffle/js/runtime/array/TypedArray$TypedBigIntArray<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  public static boolean compareAndSwapInt(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, int, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;III)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // int initial
        start local 4 // int result
         0: .line 103
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 105
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            istore 5 /* value */
        start local 5 // int value
         2: .line 106
            iload 5 /* value */
            iload 3 /* initial */
            if_icmpne 6
         3: .line 107
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            iload 4 /* result */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         4: .line 112
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 108
            iconst_1
            ireturn
         6: .line 112
      StackMap locals: int
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         7: .line 110
            iconst_0
            ireturn
        end local 5 // int value
         8: .line 111
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int int int
      StackMap stack: java.lang.Throwable
            astore 6
         9: .line 112
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        10: .line 113
            aload 6
            athrow
        end local 4 // int result
        end local 3 // int initial
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   11     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   11     2  intArrayOffset  I
            0   11     3         initial  I
            0   11     4          result  I
            2    8     5           value  I
      Exception table:
        from    to  target  type
           1     4       8  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      initial         
      result          

  public static boolean compareAndSwapBigInt(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, com.oracle.truffle.js.runtime.BigInt, com.oracle.truffle.js.runtime.BigInt);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;Lcom/oracle/truffle/js/runtime/BigInt;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // com.oracle.truffle.js.runtime.BigInt initial
        start local 4 // com.oracle.truffle.js.runtime.BigInt result
         0: .line 118
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 120
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGetBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;I)Lcom/oracle/truffle/js/runtime/BigInt;
            astore 5 /* value */
        start local 5 // com.oracle.truffle.js.runtime.BigInt value
         2: .line 121
            aload 5 /* value */
            aload 3 /* initial */
            invokevirtual com.oracle.truffle.js.runtime.BigInt.compareTo:(Lcom/oracle/truffle/js/runtime/BigInt;)I
            ifne 6
         3: .line 122
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            aload 4 /* result */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePutBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;)V
         4: .line 127
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 123
            iconst_1
            ireturn
         6: .line 127
      StackMap locals: com.oracle.truffle.js.runtime.BigInt
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         7: .line 125
            iconst_0
            ireturn
        end local 5 // com.oracle.truffle.js.runtime.BigInt value
         8: .line 126
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int com.oracle.truffle.js.runtime.BigInt com.oracle.truffle.js.runtime.BigInt
      StackMap stack: java.lang.Throwable
            astore 6
         9: .line 127
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        10: .line 128
            aload 6
            athrow
        end local 4 // com.oracle.truffle.js.runtime.BigInt result
        end local 3 // com.oracle.truffle.js.runtime.BigInt initial
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   11     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   11     2  intArrayOffset  I
            0   11     3         initial  Lcom/oracle/truffle/js/runtime/BigInt;
            0   11     4          result  Lcom/oracle/truffle/js/runtime/BigInt;
            2    8     5           value  Lcom/oracle/truffle/js/runtime/BigInt;
      Exception table:
        from    to  target  type
           1     4       8  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      initial         
      result          

  public static long atomicFetchOrGetUnsigned(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;Ljava/lang/Object;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // java.lang.Object expected
        start local 4 // java.lang.Object replacement
         0: .line 134
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 135
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            i2l
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(J)J
            lstore 5 /* read */
        start local 5 // long read
         2: .line 136
            lload 5 /* read */
            aload 3 /* expected */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            lcmp
            ifne 4
         3: .line 137
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            aload 4 /* replacement */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            l2i
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         4: .line 139
      StackMap locals: long
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         5: .line 140
            lload 5 /* read */
            lreturn
        end local 5 // long read
        end local 4 // java.lang.Object replacement
        end local 3 // java.lang.Object expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    6     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     2  intArrayOffset  I
            0    6     3        expected  Ljava/lang/Object;
            0    6     4     replacement  Ljava/lang/Object;
            2    6     5            read  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     

  public static long atomicFetchOrGetLong(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, long, long);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;IJJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // long expected
        start local 5 // long replacement
         0: .line 145
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 147
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            istore 7 /* read */
        start local 7 // int read
         2: .line 148
            iload 7 /* read */
            i2l
            lload 3 /* expected */
            lcmp
            ifne 4
         3: .line 149
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            lload 5 /* replacement */
            l2i
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         4: .line 151
      StackMap locals: int
      StackMap stack:
            iload 7 /* read */
            i2l
            lstore 9
         5: .line 153
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 151
            lload 9
            lreturn
        end local 7 // int read
         7: .line 152
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int long long
      StackMap stack: java.lang.Throwable
            astore 8
         8: .line 153
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         9: .line 154
            aload 8
            athrow
        end local 5 // long replacement
        end local 3 // long expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     2  intArrayOffset  I
            0   10     3        expected  J
            0   10     5     replacement  J
            2    7     7            read  I
      Exception table:
        from    to  target  type
           1     5       7  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     

  public static int atomicFetchOrGetInt(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, int, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // int expected
        start local 4 // int replacement
         0: .line 159
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 161
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            istore 5 /* read */
        start local 5 // int read
         2: .line 162
            iload 5 /* read */
            iload 3 /* expected */
            if_icmpne 4
         3: .line 163
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            iload 4 /* replacement */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         4: .line 165
      StackMap locals: int
      StackMap stack:
            iload 5 /* read */
            istore 7
         5: .line 167
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 165
            iload 7
            ireturn
        end local 5 // int read
         7: .line 166
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int int int
      StackMap stack: java.lang.Throwable
            astore 6
         8: .line 167
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         9: .line 168
            aload 6
            athrow
        end local 4 // int replacement
        end local 3 // int expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     2  intArrayOffset  I
            0   10     3        expected  I
            0   10     4     replacement  I
            2    7     5            read  I
      Exception table:
        from    to  target  type
           1     5       7  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     

  public static int atomicFetchOrGetShort(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, int, int, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;IIIZ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // int expected
        start local 4 // int replacement
        start local 5 // boolean sign
         0: .line 173
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 174
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            istore 6 /* read */
        start local 6 // int read
         2: .line 175
            iload 5 /* sign */
            ifeq 3
            iload 6 /* read */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iload 6 /* read */
            ldc 65535
            iand
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* read */
         5: .line 176
            iload 5 /* sign */
            ifeq 6
            iload 3 /* expected */
            i2s
            goto 7
      StackMap locals:
      StackMap stack:
         6: iload 3 /* expected */
            ldc 65535
            iand
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* expectedChopped */
        start local 7 // int expectedChopped
         8: .line 177
            iload 6 /* read */
            iload 7 /* expectedChopped */
            if_icmpne 13
         9: .line 178
            iload 5 /* sign */
            ifeq 10
            iload 4 /* replacement */
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iload 4 /* replacement */
            ldc 65535
            iand
      StackMap locals:
      StackMap stack: int
        11: istore 8 /* signed */
        start local 8 // int signed
        12: .line 179
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            iload 8 /* signed */
            i2s
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        end local 8 // int signed
        13: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        14: .line 182
            iload 6 /* read */
            ireturn
        end local 7 // int expectedChopped
        end local 6 // int read
        end local 5 // boolean sign
        end local 4 // int replacement
        end local 3 // int expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0               cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   15     1           target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   15     2   intArrayOffset  I
            0   15     3         expected  I
            0   15     4      replacement  I
            0   15     5             sign  Z
            2   15     6             read  I
            8   15     7  expectedChopped  I
           12   13     8           signed  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     
      sign            

  public static int atomicFetchOrGetByte(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, int, int, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;IIIZ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // int expected
        start local 4 // int replacement
        start local 5 // boolean sign
         0: .line 187
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 189
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGet:(Lcom/oracle/truffle/api/object/DynamicObject;I)I
            istore 6 /* read */
        start local 6 // int read
         2: .line 190
            iload 5 /* sign */
            ifeq 3
            iload 6 /* read */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iload 6 /* read */
            sipush 255
            iand
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* read */
         5: .line 191
            iload 5 /* sign */
            ifeq 6
            iload 3 /* expected */
            i2b
            goto 7
      StackMap locals:
      StackMap stack:
         6: iload 3 /* expected */
            sipush 255
            iand
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* expectedChopped */
        start local 7 // int expectedChopped
         8: .line 192
            iload 6 /* read */
            iload 7 /* expectedChopped */
            if_icmpne 13
         9: .line 193
            iload 5 /* sign */
            ifeq 10
            iload 4 /* replacement */
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iload 4 /* replacement */
            sipush 255
            iand
      StackMap locals:
      StackMap stack: int
        11: istore 8 /* signed */
        start local 8 // int signed
        12: .line 194
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            iload 8 /* signed */
            i2b
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePut:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        end local 8 // int signed
        13: .line 196
      StackMap locals:
      StackMap stack:
            iload 6 /* read */
            istore 10
        14: .line 198
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        15: .line 196
            iload 10
            ireturn
        end local 7 // int expectedChopped
        end local 6 // int read
        16: .line 197
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int int int int
      StackMap stack: java.lang.Throwable
            astore 9
        17: .line 198
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        18: .line 199
            aload 9
            athrow
        end local 5 // boolean sign
        end local 4 // int replacement
        end local 3 // int expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0               cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   19     1           target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   19     2   intArrayOffset  I
            0   19     3         expected  I
            0   19     4      replacement  I
            0   19     5             sign  Z
            2   16     6             read  I
            8   16     7  expectedChopped  I
           12   13     8           signed  I
      Exception table:
        from    to  target  type
           1    14      16  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     
      sign            

  public static com.oracle.truffle.js.runtime.BigInt atomicFetchOrGetBigInt(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int, com.oracle.truffle.js.runtime.BigInt, com.oracle.truffle.js.runtime.BigInt);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;Lcom/oracle/truffle/js/runtime/BigInt;)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int intArrayOffset
        start local 3 // com.oracle.truffle.js.runtime.BigInt expected
        start local 4 // com.oracle.truffle.js.runtime.BigInt replacement
         0: .line 204
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionEnter:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         1: .line 206
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatileGetBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;I)Lcom/oracle/truffle/js/runtime/BigInt;
            astore 5 /* read */
        start local 5 // com.oracle.truffle.js.runtime.BigInt read
         2: .line 207
            aload 5 /* read */
            aload 3 /* expected */
            invokevirtual com.oracle.truffle.js.runtime.BigInt.compareTo:(Lcom/oracle/truffle/js/runtime/BigInt;)I
            ifne 4
         3: .line 208
            aload 1 /* target */
            iload 2 /* intArrayOffset */
            aload 4 /* replacement */
            invokestatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.doVolatilePutBigInt:(Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/BigInt;)V
         4: .line 210
      StackMap locals: com.oracle.truffle.js.runtime.BigInt
      StackMap stack:
            aload 5 /* read */
            astore 7
         5: .line 212
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 210
            aload 7
            areturn
        end local 5 // com.oracle.truffle.js.runtime.BigInt read
         7: .line 211
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.DynamicObject int com.oracle.truffle.js.runtime.BigInt com.oracle.truffle.js.runtime.BigInt
      StackMap stack: java.lang.Throwable
            astore 6
         8: .line 212
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* target */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.atomicSectionLeave:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         9: .line 213
            aload 6
            athrow
        end local 4 // com.oracle.truffle.js.runtime.BigInt replacement
        end local 3 // com.oracle.truffle.js.runtime.BigInt expected
        end local 2 // int intArrayOffset
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0              cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   10     1          target  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     2  intArrayOffset  I
            0   10     3        expected  Lcom/oracle/truffle/js/runtime/BigInt;
            0   10     4     replacement  Lcom/oracle/truffle/js/runtime/BigInt;
            2    7     5            read  Lcom/oracle/truffle/js/runtime/BigInt;
      Exception table:
        from    to  target  type
           1     5       7  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      cx              
      target          
      intArrayOffset  
      expected        
      replacement     

  public static com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry getWaiterList(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;I)Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // int indexPos
         0: .line 220
            aload 1 /* target */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.getArrayBuffer:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 3 /* arrayBuffer */
        start local 3 // com.oracle.truffle.api.object.DynamicObject arrayBuffer
         1: .line 221
            aload 3 /* arrayBuffer */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSharedArrayBuffer.getWaiterList:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;
            astore 4 /* waiterList */
        start local 4 // com.oracle.truffle.js.runtime.JSAgentWaiterList waiterList
         2: .line 222
            aload 4 /* waiterList */
            iload 2 /* indexPos */
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList.getListForIndex:(I)Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
            areturn
        end local 4 // com.oracle.truffle.js.runtime.JSAgentWaiterList waiterList
        end local 3 // com.oracle.truffle.api.object.DynamicObject arrayBuffer
        end local 2 // int indexPos
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0           cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1       target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     2     indexPos  I
            1    3     3  arrayBuffer  Lcom/oracle/truffle/api/object/DynamicObject;
            2    3     4   waiterList  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList;
    MethodParameters:
          Name  Flags
      cx        
      target    
      indexPos  

  public static void enterCriticalSection(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
         0: .line 227
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.criticalSectionEnter:(Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
         2: .line 229
            return
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1    wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      cx    
      wl    

  public static void leaveCriticalSection(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
         0: .line 233
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.criticalSectionLeave:(Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
         1: .line 234
            return
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    2     1    wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      cx    
      wl    

  public static boolean agentCanSuspend(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
         0: .line 237
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.canBlock:()Z
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
      Name  Flags
      cx    

  public static void addWaiter(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        start local 2 // int id
         0: .line 242
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 243
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 2
            aload 1 /* wl */
            iload 2 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.contains:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* wl */
            iload 2 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.add:(Ljava/lang/Object;)Z
            pop
         3: .line 245
            return
        end local 2 // int id
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     1    wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
            0    4     2    id  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      cx    
      wl    
      id    

  public static void removeWaiter(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        start local 2 // int w
         0: .line 249
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 250
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 2
            aload 1 /* wl */
            iload 2 /* w */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.contains:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* wl */
            iload 2 /* w */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 252
            return
        end local 2 // int w
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     1    wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
            0    4     2     w  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      cx    
      wl    
      w     

  public static boolean suspendAgent(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry, int, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;II)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        start local 2 // int w
        start local 3 // int timeout
         0: .line 257
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 258
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 2
            aload 1 /* wl */
            iload 2 /* w */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.contains:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 259
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 3
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.getSignifier:()I
            iload 2 /* w */
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 260
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 4
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.canBlock:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.criticalSectionLeave:(Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
         5: .line 262
            iconst_0
            istore 4 /* interrupt */
        start local 4 // boolean interrupt
         6: .line 264
            iload 3 /* timeout */
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
         7: .line 265
            goto 10
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry int int int
      StackMap stack: java.lang.InterruptedException
         8: pop
         9: .line 266
            iconst_1
            istore 4 /* interrupt */
        10: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.criticalSectionEnter:(Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;)V
        11: .line 269
            iload 4 /* interrupt */
            ireturn
        end local 4 // boolean interrupt
        end local 3 // int timeout
        end local 2 // int w
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0         cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   12     1         wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
            0   12     2          w  I
            0   12     3    timeout  I
            6   12     4  interrupt  Z
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      cx       
      wl       
      w        
      timeout  

  public static void wakeWaiter(com.oracle.truffle.js.runtime.JSContext, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // int w
         0: .line 275
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            iload 1 /* w */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.wakeAgent:(I)V
         2: .line 277
            return
        end local 1 // int w
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    3     1     w  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      cx    
      w     

  public static int[] removeWaiters(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry, int);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;I)[I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        start local 2 // int count
         0: .line 281
            getstatic com.oracle.truffle.js.builtins.helper.SharedMemorySync.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cx */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getJSAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.inCriticalSection:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 282
      StackMap locals:
      StackMap stack:
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.size:()I
            iload 2 /* count */
            invokestatic java.lang.Integer.min:(II)I
            istore 3 /* c */
        start local 3 // int c
         2: .line 283
            iload 3 /* c */
            newarray 10
            astore 4 /* removed */
        start local 4 // int[] removed
         3: .line 284
            goto 5
         4: .line 285
      StackMap locals: int int[]
      StackMap stack:
            aload 4 /* removed */
            iload 3 /* c */
            aload 1 /* wl */
            invokevirtual com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry.poll:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
         5: .line 284
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            iinc 3 /* c */ -1
            ifgt 4
         6: .line 287
            aload 4 /* removed */
            areturn
        end local 4 // int[] removed
        end local 3 // int c
        end local 2 // int count
        end local 1 // com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry wl
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0       cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    7     1       wl  Lcom/oracle/truffle/js/runtime/JSAgentWaiterList$JSAgentWaiterListEntry;
            0    7     2    count  I
            2    7     3        c  I
            3    7     4  removed  [I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      cx     
      wl     
      count  
}
SourceFile: "SharedMemorySync.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final JSAgentWaiterListEntry = com.oracle.truffle.js.runtime.JSAgentWaiterList$JSAgentWaiterListEntry of com.oracle.truffle.js.runtime.JSAgentWaiterList
  public abstract TypedBigIntArray = com.oracle.truffle.js.runtime.array.TypedArray$TypedBigIntArray 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