public class com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks
super_class: java.lang.Object
{
private static final java.lang.String[] REMOTE_OBJECTS_MAP_NAMES;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "remotesByIDs"
aastore
dup
iconst_1
ldc "remotesByValue"
aastore
dup
iconst_2
ldc "customPreviewBodies"
aastore
dup
iconst_3
ldc "customPreviewConfigs"
aastore
putstatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.REMOTE_OBJECTS_MAP_NAMES:[Ljava/lang/String;
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 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/tools/chromeinspector/test/TestMemoryLeaks;
public void testRemoteObjectsLeak();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: iconst_0
invokestatic com.oracle.truffle.tools.chromeinspector.test.InspectorTester.start:(Z)Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester;
astore 1
start local 1 1: aload 1
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.getInspectorContext:()Lcom/oracle/truffle/tools/chromeinspector/InspectorExecutionContext;
invokevirtual com.oracle.truffle.tools.chromeinspector.InspectorExecutionContext.getRemoteObjectsHandler:()Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;
astore 2
start local 2 2: aload 2
invokestatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.assertEmptyRemoteObjectsMaps:(Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;)V
3: ldc "sl"
ldc "function main() {\n func1();\n func2(new());\n func3();\n}\nfunction func1() {\n a = 0;\n b = new();\n debugger;\n}\nfunction func2(arg) {\n c = new();\n d = 3;\n debugger;\n}\nfunction func3() {\n debugger;\n}\n"
4: ldc "code"
5: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
6: invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
7: astore 3
start local 3 8: aload 3
invokevirtual org.graalvm.polyglot.Source.getURI:()Ljava/net/URI;
invokestatic com.oracle.truffle.tools.chromeinspector.test.InspectorTester.getStringURI:(Ljava/net/URI;)Ljava/lang/String;
astore 4
start local 4 9: aload 1
ldc "{\"id\":1,\"method\":\"Runtime.enable\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
10: aload 1
ldc "{\"id\":2,\"method\":\"Debugger.enable\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
11: aload 1
ldc "{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
12: aload 1
ldc "{\"result\":{},\"id\":1}\n{\"result\":{},\"id\":2}\n{\"result\":{},\"id\":3}\n{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
13: aload 1
aload 3
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.eval:(Lorg/graalvm/polyglot/Source;)Ljava/util/concurrent/Future;
pop
14: aload 1
iconst_3
anewarray java.lang.String
dup
iconst_0
15: ldc "{\"method\":\"Debugger.scriptParsed\""
aastore
dup
iconst_1
16: ldc "{\"method\":\"Debugger.paused\""
aastore
dup
iconst_2
17: new java.lang.StringBuilder
dup
ldc "\"url\":\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\"}]}}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
18: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.receiveMessages:([Ljava/lang/String;)Ljava/lang/String;
pop
19: aload 1
ldc "{\"id\":5,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"1\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
20: aload 1
iconst_4
anewarray java.lang.String
dup
iconst_0
21: ldc "{\"result\":"
aastore
dup
iconst_1
22: ldc "\"name\":\"a\""
aastore
dup
iconst_2
23: ldc "\"name\":\"b\""
aastore
dup
iconst_3
24: ldc "\"id\":5}\n"
aastore
25: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.receiveMessages:([Ljava/lang/String;)Ljava/lang/String;
pop
26: aload 2
iconst_5
invokestatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.assertRemoteObjectsMapsSize:(Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;I)V
27: aload 1
ldc "{\"id\":10,\"method\":\"Debugger.resume\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
28: aload 1
ldc "{\"result\":{},\"id\":10}\n{\"method\":\"Debugger.resumed\"}\n"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
29: aload 1
iconst_2
anewarray java.lang.String
dup
iconst_0
30: ldc "{\"method\":\"Debugger.paused\""
aastore
dup
iconst_1
31: new java.lang.StringBuilder
dup
ldc "\"url\":\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\"}]}}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
32: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.receiveMessages:([Ljava/lang/String;)Ljava/lang/String;
pop
33: aload 1
ldc "{\"id\":15,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"8\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
34: aload 1
iconst_5
anewarray java.lang.String
dup
iconst_0
35: ldc "{\"result\":"
aastore
dup
iconst_1
36: ldc "\"name\":\"arg\""
aastore
dup
iconst_2
37: ldc "\"name\":\"c\""
aastore
dup
iconst_3
38: ldc "\"name\":\"d\""
aastore
dup
iconst_4
39: ldc "\"id\":15}\n"
aastore
40: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.receiveMessages:([Ljava/lang/String;)Ljava/lang/String;
pop
41: aload 2
bipush 6
invokestatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.assertRemoteObjectsMapsSize:(Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;I)V
42: aload 1
ldc "{\"id\":20,\"method\":\"Debugger.resume\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
43: aload 1
ldc "{\"result\":{},\"id\":20}\n{\"method\":\"Debugger.resumed\"}\n"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
44: aload 1
iconst_2
anewarray java.lang.String
dup
iconst_0
45: ldc "{\"method\":\"Debugger.paused\""
aastore
dup
iconst_1
46: new java.lang.StringBuilder
dup
ldc "\"url\":\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\"}]}}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
47: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.receiveMessages:([Ljava/lang/String;)Ljava/lang/String;
pop
48: aload 1
ldc "{\"id\":25,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"16\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
49: aload 1
50: ldc "{\"result\":{\"result\":[],\"internalProperties\":[]},\"id\":25}\n"
51: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
52: aload 2
iconst_4
invokestatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.assertRemoteObjectsMapsSize:(Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;I)V
53: aload 1
ldc "{\"id\":30,\"method\":\"Debugger.resume\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
54: aload 1
ldc "{\"result\":{},\"id\":30}\n{\"method\":\"Debugger.resumed\"}\n"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
55: aload 1
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.finishNoGC:()V
56: aload 2
invokestatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.assertEmptyRemoteObjectsMaps:(Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;)V
57: aconst_null
astore 2
58: aload 1
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.finish:()V
59: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lcom/oracle/truffle/tools/chromeinspector/test/TestMemoryLeaks;
1 60 1 tester Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester;
2 60 2 remoteObjectsHandler Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;
8 60 3 source Lorg/graalvm/polyglot/Source;
9 60 4 slTestURI Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
private static void assertEmptyRemoteObjectsMaps(com.oracle.truffle.tools.chromeinspector.RemoteObjectsHandler);
descriptor: (Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: getstatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.REMOTE_OBJECTS_MAP_NAMES:[Ljava/lang/String;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: com.oracle.truffle.tools.chromeinspector.RemoteObjectsHandler top int int java.lang.String[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 0
aload 1
invokestatic com.oracle.truffle.api.test.ReflectionUtils.getField:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.Map
astore 5
start local 5 3: new java.lang.StringBuilder
dup
ldc "Map "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
lconst_0
aload 5
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
end local 5 end local 1 4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 remoteObjectsHandler Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;
2 4 1 mapName Ljava/lang/String;
3 4 5 map Ljava/util/Map<**>;
MethodParameters:
Name Flags
remoteObjectsHandler
private static void assertRemoteObjectsMapsSize(com.oracle.truffle.tools.chromeinspector.RemoteObjectsHandler, int);
descriptor: (Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 6
2: StackMap locals: int
StackMap stack:
getstatic com.oracle.truffle.tools.chromeinspector.test.TestMemoryLeaks.REMOTE_OBJECTS_MAP_NAMES:[Ljava/lang/String;
iload 2
aaload
astore 3
start local 3 3: aload 0
aload 3
invokestatic com.oracle.truffle.api.test.ReflectionUtils.getField:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.Map
astore 4
start local 4 4: new java.lang.StringBuilder
dup
ldc "Map "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 1
i2l
aload 4
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
end local 4 end local 3 5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
iconst_1
if_icmplt 2
end local 2 7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 remoteObjectsHandler Lcom/oracle/truffle/tools/chromeinspector/RemoteObjectsHandler;
0 8 1 size I
1 7 2 i I
3 5 3 mapName Ljava/lang/String;
4 5 4 map Ljava/util/Map<**>;
MethodParameters:
Name Flags
remoteObjectsHandler
size
}
SourceFile: "TestMemoryLeaks.java"
InnerClasses:
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source