public class com.oracle.truffle.js.test.builtins.TypeOfTest extends com.oracle.truffle.js.test.JSTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.test.builtins.TypeOfTest
  super_class: com.oracle.truffle.js.test.JSTest
{
  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.TypeOfTest this
         0: .line 51
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.test.JSTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/builtins/TypeOfTest;

  public void testTypeOfIdenticalRevokedProxy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
         0: .line 55
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "var revocable = Proxy.revocable(function() {}, {}); revocable.revoke(); typeof revocable.proxy === 'function'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 56
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "var revocable = Proxy.revocable(function() {}, {}); revocable.revoke(); typeof revocable.proxy === 'object'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         2: .line 57
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "var revocable = Proxy.revocable({}, {}); revocable.revoke(); typeof revocable.proxy === 'function'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         3: .line 58
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "var revocable = Proxy.revocable({}, {}); revocable.revoke(); typeof revocable.proxy === 'object'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 59
            return
        end local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/js/test/builtins/TypeOfTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testTypeOfNestedRevokedProxies();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
         0: .line 63
            ldc "var inner = Proxy.revocable(function() {}, {});\nvar outer = Proxy.revocable(inner.proxy, {});\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 65
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            aload 1 /* code */
            invokevirtual com.oracle.truffle.js.test.TestHelper.runVoid:(Ljava/lang/String;)V
         2: .line 66
            ldc "function"
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "typeof outer.proxy"
            invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 67
            ldc "function"
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "inner.revoke(); typeof outer.proxy"
            invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 68
            ldc "function"
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "outer.revoke(); typeof outer.proxy"
            invokevirtual com.oracle.truffle.js.test.TestHelper.run:(Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 69
            return
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/js/test/builtins/TypeOfTest;
            1    6     1  code  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testTypeOfIdenticalNestedRevokedProxies();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
         0: .line 73
            ldc "var inner = Proxy.revocable(function() {}, {});\nvar outer = Proxy.revocable(inner.proxy, {});\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 75
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            aload 1 /* code */
            invokevirtual com.oracle.truffle.js.test.TestHelper.runVoid:(Ljava/lang/String;)V
         2: .line 76
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "typeof outer.proxy === 'function'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 77
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "typeof outer.proxy === 'object'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 78
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "inner.revoke(); typeof outer.proxy === 'function'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 79
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "typeof outer.proxy === 'object'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         6: .line 80
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "outer.revoke(); typeof outer.proxy === 'function'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 81
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.builtins.TypeOfTest.testHelper:Lcom/oracle/truffle/js/test/TestHelper;
            ldc "typeof outer.proxy === 'object'"
            invokevirtual com.oracle.truffle.js.test.TestHelper.runBoolean:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         8: .line 82
            return
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.js.test.builtins.TypeOfTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/js/test/builtins/TypeOfTest;
            1    9     1  code  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "TypeOfTest.java"