public class com.oracle.truffle.js.test.debug.TestMetaObject
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.debug.TestMetaObject
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 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/debug/TestMetaObject;
public void metaObjectTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
3: ldc "function Test() { };\nclass TestClass { };\nvar resultArr = [];\nresultArr.push([]);\nresultArr.push([1,2,[3,4]]);\nresultArr.push(true);\nresultArr.push(false);\nresultArr.push(0);\nresultArr.push(42);\nresultArr.push(42.42);\nresultArr.push(1000000000000000);\nresultArr.push('MyString');\nresultArr.push(function pow2(x) { return x*x; });\nresultArr.push(null);\nresultArr.push(Symbol());\nresultArr.push(Symbol('symbolic'));\nresultArr.push({});\nresultArr.push(new Date(0));\nresultArr.push(new Test());\nresultArr.push(new TestClass());\nresultArr.push(undefined);\nresultArr.push(new Proxy({a:2}, {}));\nresultArr.push(new Proxy(function(x) { return x*x; }, {}));\nresultArr;"
4: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 5: aload 3
ldc "js"
ldc "value => typeof value;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 6: bipush 20
anewarray java.lang.String
dup
iconst_0
7: ldc "[]"
aastore
dup
iconst_1
8: ldc "(3)[1, 2, [3, 4]]"
aastore
dup
iconst_2
9: ldc "true"
aastore
dup
iconst_3
10: ldc "false"
aastore
dup
iconst_4
11: ldc "0"
aastore
dup
iconst_5
12: ldc "42"
aastore
dup
bipush 6
13: ldc "42.42"
aastore
dup
bipush 7
14: ldc "1000000000000000"
aastore
dup
bipush 8
15: ldc "MyString"
aastore
dup
bipush 9
16: ldc "function pow2(x) { return x*x; }"
aastore
dup
bipush 10
17: ldc "null"
aastore
dup
bipush 11
18: ldc "Symbol()"
aastore
dup
bipush 12
19: ldc "Symbol(symbolic)"
aastore
dup
bipush 13
20: ldc "{}"
aastore
dup
bipush 14
21: ldc "1970-01-01T00:00:00.000Z"
aastore
dup
bipush 15
22: ldc "{}"
aastore
dup
bipush 16
23: ldc "{}"
aastore
dup
bipush 17
24: ldc "undefined"
aastore
dup
bipush 18
25: ldc "Proxy({a: 2}, {})"
aastore
dup
bipush 19
26: ldc "Proxy(function(x) { return x*x; }, {})"
aastore
27: astore 6
start local 6 28: bipush 20
anewarray java.lang.String
dup
iconst_0
29: ldc "object"
aastore
dup
iconst_1
30: ldc "object"
aastore
dup
iconst_2
31: ldc "boolean"
aastore
dup
iconst_3
32: ldc "boolean"
aastore
dup
iconst_4
33: ldc "number"
aastore
dup
iconst_5
34: ldc "number"
aastore
dup
bipush 6
35: ldc "number"
aastore
dup
bipush 7
36: ldc "number"
aastore
dup
bipush 8
37: ldc "string"
aastore
dup
bipush 9
38: ldc "function"
aastore
dup
bipush 10
39: ldc "object"
aastore
dup
bipush 11
40: ldc "symbol"
aastore
dup
bipush 12
41: ldc "symbol"
aastore
dup
bipush 13
42: ldc "object"
aastore
dup
bipush 14
43: ldc "object"
aastore
dup
bipush 15
44: ldc "object"
aastore
dup
bipush 16
45: ldc "object"
aastore
dup
bipush 17
46: ldc "undefined"
aastore
dup
bipush 18
47: ldc "object"
aastore
dup
bipush 19
48: ldc "function"
aastore
49: astore 7
start local 7 50: bipush 20
anewarray java.lang.String
dup
iconst_0
51: ldc "Array"
aastore
dup
iconst_1
52: ldc "Array"
aastore
dup
bipush 9
53: ldc "Function"
aastore
dup
bipush 13
54: ldc "Object"
aastore
dup
bipush 14
55: ldc "Date"
aastore
dup
bipush 15
56: ldc "Test"
aastore
dup
bipush 16
57: ldc "TestClass"
aastore
dup
bipush 18
58: ldc "Proxy"
aastore
dup
bipush 19
59: ldc "Proxy"
aastore
60: astore 8
start local 8 61: bipush 20
anewarray java.lang.String
dup
iconst_0
62: ldc "Array"
aastore
dup
iconst_1
63: ldc "Array"
aastore
dup
iconst_2
64: ldc "boolean"
aastore
dup
iconst_3
65: ldc "boolean"
aastore
dup
iconst_4
66: ldc "number"
aastore
dup
iconst_5
67: ldc "number"
aastore
dup
bipush 6
68: ldc "number"
aastore
dup
bipush 7
69: ldc "number"
aastore
dup
bipush 8
70: ldc "string"
aastore
dup
bipush 9
71: ldc "Function"
aastore
dup
bipush 10
72: ldc "null"
aastore
dup
bipush 11
73: ldc "symbol"
aastore
dup
bipush 12
74: ldc "symbol"
aastore
dup
bipush 13
75: ldc "Object"
aastore
dup
bipush 14
76: ldc "Date"
aastore
dup
bipush 15
77: ldc "Test"
aastore
dup
bipush 16
78: ldc "TestClass"
aastore
dup
bipush 17
79: ldc "undefined"
aastore
dup
bipush 18
80: ldc "Proxy"
aastore
dup
bipush 19
81: ldc "Proxy"
aastore
82: astore 9
start local 9 83: aload 9
arraylength
istore 10
start local 10 84: iload 10
i2l
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
85: iconst_0
istore 11
start local 11 86: goto 104
87: StackMap locals: com.oracle.truffle.js.test.debug.TestMetaObject java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context org.graalvm.polyglot.Value org.graalvm.polyglot.Value java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String[] int int
StackMap stack:
aload 4
iload 11
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 12
start local 12 88: aload 12
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
astore 13
start local 13 89: aload 6
iload 11
aaload
aload 13
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
90: aload 12
invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
astore 14
start local 14 91: aload 9
iload 11
aaload
ifnull 96
92: ldc "meta object"
aload 14
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
93: aload 9
iload 11
aaload
aload 14
invokevirtual org.graalvm.polyglot.Value.getMetaSimpleName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
94: aload 9
iload 11
aaload
aload 14
invokevirtual org.graalvm.polyglot.Value.getMetaQualifiedName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
95: goto 97
96: StackMap locals: org.graalvm.polyglot.Value java.lang.String org.graalvm.polyglot.Value
StackMap stack:
ldc "meta object"
aload 14
invokestatic org.junit.Assert.assertNull:(Ljava/lang/String;Ljava/lang/Object;)V
97: StackMap locals:
StackMap stack:
aload 8
iload 11
aaload
ifnull 101
98: ldc "meta object"
aload 14
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
99: aload 8
iload 11
aaload
aload 14
invokevirtual org.graalvm.polyglot.Value.getMetaSimpleName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
100: aload 8
iload 11
aaload
aload 14
invokevirtual org.graalvm.polyglot.Value.getMetaQualifiedName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
101: StackMap locals:
StackMap stack:
aload 5
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
astore 15
start local 15 102: new java.lang.StringBuilder
dup
ldc "typeof "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
iload 11
aaload
aload 15
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 15 end local 14 end local 13 end local 12 103: iinc 11 1
StackMap locals:
StackMap stack:
104: iload 11
iload 10
if_icmplt 87
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 105: aload 3
ifnull 111
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 111
StackMap locals: com.oracle.truffle.js.test.debug.TestMetaObject java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
106: astore 1
aload 3
ifnull 107
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
107: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
108: astore 2
aload 1
ifnonnull 109
aload 2
astore 1
goto 110
StackMap locals:
StackMap stack:
109: aload 1
aload 2
if_acmpeq 110
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
110: aload 1
athrow
111: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 112 0 this Lcom/oracle/truffle/js/test/debug/TestMetaObject;
2 107 3 context Lorg/graalvm/polyglot/Context;
5 105 4 allJSDataTypes Lorg/graalvm/polyglot/Value;
6 105 5 typeof Lorg/graalvm/polyglot/Value;
28 105 6 valueToStrings [Ljava/lang/String;
50 105 7 types [Ljava/lang/String;
61 105 8 classNames [Ljava/lang/String;
83 105 9 toStrings [Ljava/lang/String;
84 105 10 n I
86 105 11 i I
88 103 12 value Lorg/graalvm/polyglot/Value;
89 103 13 valueToString Ljava/lang/String;
91 103 14 metaObject Lorg/graalvm/polyglot/Value;
102 103 15 type Ljava/lang/String;
Exception table:
from to target type
2 105 106 any
1 108 108 any
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void memberFunctionTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "Math"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: aload 4
ldc "abs"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: aload 5
invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: ldc "Function"
aload 6
invokevirtual org.graalvm.polyglot.Value.getMetaSimpleName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: ldc "Function"
aload 6
invokevirtual org.graalvm.polyglot.Value.getMetaQualifiedName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 6
aload 5
invokevirtual org.graalvm.polyglot.Value.isMetaInstance:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 6 end local 5 end local 4 8: aload 3
ifnull 14
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 14
StackMap locals: com.oracle.truffle.js.test.debug.TestMetaObject java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
9: astore 1
aload 3
ifnull 10
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
10: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
aload 1
ifnonnull 12
aload 2
astore 1
goto 13
StackMap locals:
StackMap stack:
12: aload 1
aload 2
if_acmpeq 13
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 1
athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/js/test/debug/TestMetaObject;
2 10 3 context Lorg/graalvm/polyglot/Context;
3 8 4 math Lorg/graalvm/polyglot/Value;
4 8 5 abs Lorg/graalvm/polyglot/Value;
5 8 6 metaObject Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 8 9 any
1 11 11 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void errorTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "foo"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
3: ldc "ReferenceError expected"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
4: goto 12
StackMap locals: com.oracle.truffle.js.test.debug.TestMetaObject java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: org.graalvm.polyglot.PolyglotException
5: astore 4
start local 4 6: aload 4
invokevirtual org.graalvm.polyglot.PolyglotException.isGuestException:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 4
invokevirtual org.graalvm.polyglot.PolyglotException.getGuestObject:()Lorg/graalvm/polyglot/Value;
astore 5
start local 5 8: aload 5
invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
astore 6
start local 6 9: ldc "ReferenceError"
aload 6
invokevirtual org.graalvm.polyglot.Value.getMetaSimpleName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "ReferenceError"
aload 6
invokevirtual org.graalvm.polyglot.Value.getMetaQualifiedName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: aload 6
aload 5
invokevirtual org.graalvm.polyglot.Value.isMetaInstance:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 6 end local 5 end local 4 12: StackMap locals:
StackMap stack:
aload 3
ifnull 18
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 1
aload 3
ifnull 14
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
14: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
aload 1
ifnonnull 16
aload 2
astore 1
goto 17
StackMap locals:
StackMap stack:
16: aload 1
aload 2
if_acmpeq 17
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 1
athrow
18: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/js/test/debug/TestMetaObject;
2 14 3 context Lorg/graalvm/polyglot/Context;
6 12 4 ex Lorg/graalvm/polyglot/PolyglotException;
8 12 5 error Lorg/graalvm/polyglot/Value;
9 12 6 metaObject Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 4 5 Class org.graalvm.polyglot.PolyglotException
2 12 13 any
1 15 15 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void customConstructorTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "Object.create(null, { constructor: { value: Function }})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: aload 5
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
end local 5 end local 4 5: aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 11
StackMap locals: com.oracle.truffle.js.test.debug.TestMetaObject java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
6: astore 1
aload 3
ifnull 7
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
7: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
aload 1
ifnonnull 9
aload 2
astore 1
goto 10
StackMap locals:
StackMap stack:
9: aload 1
aload 2
if_acmpeq 10
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 1
athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/js/test/debug/TestMetaObject;
2 7 3 context Lorg/graalvm/polyglot/Context;
3 5 4 object Lorg/graalvm/polyglot/Value;
4 5 5 metaObject Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 5 6 any
1 8 8 any
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "TestMetaObject.java"
InnerClasses:
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context