public class com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/builtins/AtomicsBuiltinsTest;

  public void testNotify();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest this
         0: .line 56
            bipush 10
            istore 1 /* agentCount */
        start local 1 // int agentCount
         1: .line 57
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            ldc "js.test262-mode"
            ldc "true"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 58
            new java.lang.StringBuilder
            dup
            ldc "let agentCount = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* agentCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ";\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 59
            ldc "for (let i = 0; i < agentCount; i++) {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 60
            ldc "  $262.agent.start(`\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 61
            ldc "    $262.agent.receiveBroadcast(function(sab) {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 62
            ldc "      const i32a = new Int32Array(sab);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 63
            ldc "      Atomics.wait(i32a, 0, 0);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 64
            ldc "      $262.agent.leaving();\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 65
            ldc "    });\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 66
            ldc "  `);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 67
            ldc "}\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 68
            ldc "const sab = new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT * 4);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 69
            ldc "$262.agent.broadcast(sab);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 70
            ldc "const i32a = new Int32Array(sab);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 71
            ldc "let count = 0;\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 72
            ldc "while (count < agentCount) {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 73
            ldc "  count += Atomics.notify(i32a, 0);\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 74
            ldc "}\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 75
            ldc "count + Atomics.notify(i32a, 0);"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 58
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* code */
        start local 5 // java.lang.String code
        22: .line 76
            aload 4 /* context */
            ldc "js"
            aload 5 /* code */
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            astore 6 /* result */
        start local 6 // org.graalvm.polyglot.Value result
        23: .line 77
            aload 6 /* result */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        24: .line 79
            iload 1 /* agentCount */
            i2l
            aload 6 /* result */
            invokevirtual org.graalvm.polyglot.Value.asInt:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        end local 6 // org.graalvm.polyglot.Value result
        end local 5 // java.lang.String code
        25: .line 80
            aload 4 /* context */
            ifnull 31
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 31
      StackMap locals: com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest int java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
        26: astore 2
            aload 4 /* context */
            ifnull 27
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        27: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 3
            aload 2
            ifnonnull 29
            aload 3
            astore 2
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 2
            aload 3
            if_acmpeq 30
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 2
            athrow
        31: .line 81
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int agentCount
        end local 0 // com.oracle.truffle.js.test.builtins.AtomicsBuiltinsTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lcom/oracle/truffle/js/test/builtins/AtomicsBuiltinsTest;
            1   32     1  agentCount  I
            3   27     4     context  Lorg/graalvm/polyglot/Context;
           22   25     5        code  Ljava/lang/String;
           23   25     6      result  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3    25      26  any
           2    28      28  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "AtomicsBuiltinsTest.java"
InnerClasses:
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context