public class com.oracle.truffle.api.library.test.LibraryAssertionsTest extends com.oracle.truffle.api.test.AbstractLibraryTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.library.test.LibraryAssertionsTest
  super_class: com.oracle.truffle.api.test.AbstractLibraryTest
{
  static int fooCalls;
    descriptor: I
    flags: (0x0008) ACC_STATIC

  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 59
            ldc Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest;
            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.api.library.test.LibraryAssertionsTest.$assertionsDisabled:Z
         3: .line 122
            iconst_0
            putstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.fooCalls:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.library.test.LibraryAssertionsTest this
         0: .line 59
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.AbstractLibraryTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.library.test.LibraryAssertionsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest;

  public void testAssertion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.library.test.LibraryAssertionsTest this
         0: .line 82
            iconst_0
            putstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.fooCalls:I
         1: .line 83
            invokestatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.assertionsEnabled:()Z
            istore 1 /* assertsOn */
        start local 1 // boolean assertsOn
         2: .line 85
            iconst_0
            istore 2 /* expectedCalls */
        start local 2 // int expectedCalls
         3: .line 86
            ldc Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest$TestLibrary1;
            ldc ""
            invokestatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.createCached:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1
            astore 3 /* lib */
        start local 3 // com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1 lib
         4: .line 87
            iload 1 /* assertsOn */
            ifeq 8
         5: .line 88
            aload 3 /* lib */
            instanceof com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 89
            iinc 2 /* expectedCalls */ 1
         7: .line 90
            goto 9
         8: .line 91
      StackMap locals: int int com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1
      StackMap stack:
            aload 3 /* lib */
            instanceof com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions
            invokestatic org.junit.Assert.assertFalse:(Z)V
         9: .line 93
      StackMap locals:
      StackMap stack:
            ldc 42
            aload 3 /* lib */
            ldc ""
            bipush 42
            invokevirtual com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1.foo:(Ljava/lang/Object;I)I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        10: .line 94
            iload 2 /* expectedCalls */
            i2l
            getstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.fooCalls:I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        11: .line 96
            ldc Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest$TestLibrary1;
            ldc ""
            invokestatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.getUncached:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1
            astore 3 /* lib */
        12: .line 97
            iload 1 /* assertsOn */
            ifeq 16
        13: .line 98
            aload 3 /* lib */
            instanceof com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions
            invokestatic org.junit.Assert.assertTrue:(Z)V
        14: .line 99
            iinc 2 /* expectedCalls */ 1
        15: .line 100
            goto 17
        16: .line 101
      StackMap locals:
      StackMap stack:
            aload 3 /* lib */
            instanceof com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions
            invokestatic org.junit.Assert.assertFalse:(Z)V
        17: .line 103
      StackMap locals:
      StackMap stack:
            ldc 42
            aload 3 /* lib */
            ldc ""
            bipush 42
            invokevirtual com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1.foo:(Ljava/lang/Object;I)I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        18: .line 104
            iload 2 /* expectedCalls */
            i2l
            getstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.fooCalls:I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        19: .line 106
            iload 1 /* assertsOn */
            ifeq 21
        20: .line 107
            iinc 2 /* expectedCalls */ 1
        21: .line 110
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/truffle/api/library/ReflectionLibrary;
            ldc ""
            invokestatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.createCached:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.library.ReflectionLibrary
            astore 4 /* reflection */
        start local 4 // com.oracle.truffle.api.library.ReflectionLibrary reflection
        22: .line 111
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* reflection */
            ldc ""
            ldc Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest$TestLibrary1;
            ldc "foo"
            invokestatic com.oracle.truffle.api.library.Message.resolve:(Ljava/lang/Class;Ljava/lang/String;)Lcom/oracle/truffle/api/library/Message;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual com.oracle.truffle.api.library.ReflectionLibrary.send:(Ljava/lang/Object;Lcom/oracle/truffle/api/library/Message;[Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        23: .line 112
            iload 2 /* expectedCalls */
            i2l
            getstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.fooCalls:I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        24: .line 113
            return
        end local 4 // com.oracle.truffle.api.library.ReflectionLibrary reflection
        end local 3 // com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1 lib
        end local 2 // int expectedCalls
        end local 1 // boolean assertsOn
        end local 0 // com.oracle.truffle.api.library.test.LibraryAssertionsTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest;
            2   25     1      assertsOn  Z
            3   25     2  expectedCalls  I
            4   25     3            lib  Lcom/oracle/truffle/api/library/test/LibraryAssertionsTest$TestLibrary1;
           22   25     4     reflection  Lcom/oracle/truffle/api/library/ReflectionLibrary;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static boolean assertionsEnabled();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 117
            iconst_0
            istore 0 /* assertsOn */
        start local 0 // boolean assertsOn
         1: .line 118
            getstatic com.oracle.truffle.api.library.test.LibraryAssertionsTest.$assertionsDisabled:Z
            ifne 2
            iconst_1
            dup
            istore 0 /* assertsOn */
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 119
      StackMap locals: int
      StackMap stack:
            iload 0 /* assertsOn */
            ireturn
        end local 0 // boolean assertsOn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1    3     0  assertsOn  Z
}
SourceFile: "LibraryAssertionsTest.java"
NestMembers:
  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ArrayAssertions  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ArrayLibrary  com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary1  com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary2  com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary3  com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary4  com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary5  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions1  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions2  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions3  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions4  com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions5  com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1  com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions  com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestObject1
InnerClasses:
  ArrayAssertions = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ArrayAssertions of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract ArrayLibrary = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ArrayLibrary of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract AssertionsErrorLibrary1 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary1 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract AssertionsErrorLibrary2 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary2 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract AssertionsErrorLibrary3 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary3 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract AssertionsErrorLibrary4 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary4 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract AssertionsErrorLibrary5 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$AssertionsErrorLibrary5 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  abstract ErrorAssertions1 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions1 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  ErrorAssertions2 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions2 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  ErrorAssertions3 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions3 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  final ErrorAssertions4 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions4 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  ErrorAssertions5 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$ErrorAssertions5 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  public abstract TestLibrary1 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1 of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  TestLibrary1Assertions = com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestLibrary1Assertions of com.oracle.truffle.api.library.test.LibraryAssertionsTest
  final TestObject1 = com.oracle.truffle.api.library.test.LibraryAssertionsTest$TestObject1 of com.oracle.truffle.api.library.test.LibraryAssertionsTest