public class com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest
super_class: java.lang.Object
{
private static final java.lang.String READ_READY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "readReady"
private static final java.lang.String READ_LAZY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "readLazy"
private static final java.lang.String INVOKE_GETTER1;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "\"functionDeclaration\":\"function invokeGetter(arrayStr){let result=this;const properties=JSON.parse(arrayStr);for(let i=0,n=properties.length;i<n;++i)\\nresult=result[properties[i]];return result;}\""
private static final java.lang.String INVOKE_GETTER2;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "\"functionDeclaration\":\"function remoteFunction(propName) { return this[propName]; }\""
private static final java.lang.String INVOKE_GETTER3;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "\"functionDeclaration\":\"function invokeGetter(arrayStr) {\\n let result = this;\\n const properties = JSON.parse(arrayStr);\\n for (let i = 0, n = properties.length; i < n; ++i) {\\n result = result[properties[i]];\\n }\\n return result;\\n }\""
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/LazyAccessInspectDebugTest;
public void testReadWithSideEffects();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
astore 1
start local 1 1: iconst_1
invokestatic com.oracle.truffle.tools.chromeinspector.test.InspectorTester.start:(Z)Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester;
astore 2
start local 2 2: aload 2
ldc "{\"id\":1,\"method\":\"Runtime.enable\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
3: aload 2
ldc "{\"id\":2,\"method\":\"Debugger.enable\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
4: aload 2
5: ldc "{\"result\":{},\"id\":1}\n{\"result\":{},\"id\":2}\n"
6: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 2
ldc "{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
8: aload 2
9: ldc "{\"result\":{},\"id\":3}\n{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"
10: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: new com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage
dup
aload 1
invokespecial com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage.<init>:(Ljava/util/concurrent/atomic/AtomicInteger;)V
invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
pop
12: ldc "proxyLanguage"
ldc "1"
ldc "ReadWithSideEffects.test"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
astore 3
start local 3 13: 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 14: new com.oracle.truffle.tools.chromeinspector.types.Script
dup
iconst_0
aconst_null
aload 3
invokestatic com.oracle.truffle.tck.DebuggerTester.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
invokespecial com.oracle.truffle.tools.chromeinspector.types.Script.<init>:(ILjava/lang/String;Lcom/oracle/truffle/api/source/Source;)V
invokevirtual com.oracle.truffle.tools.chromeinspector.types.Script.getHash:()Ljava/lang/String;
astore 5
start local 5 15: aload 2
aload 3
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.eval:(Lorg/graalvm/polyglot/Source;)Ljava/util/concurrent/Future;
pop
16: aload 2
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.getContextId:()J
lstore 6
start local 6 17: aload 3
invokevirtual org.graalvm.polyglot.Source.getLineCount:()I
iconst_1
isub
istore 8
start local 8 18: aload 3
iconst_1
invokevirtual org.graalvm.polyglot.Source.getLineLength:(I)I
istore 9
start local 9 19: aload 2
20: new java.lang.StringBuilder
dup
ldc "{\"method\":\"Debugger.scriptParsed\",\"params\":{\"endLine\":"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ",\"scriptId\":\"0\",\"endColumn\":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ",\"startColumn\":0,\"startLine\":0,\"length\":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: aload 3
invokevirtual org.graalvm.polyglot.Source.getLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ",\"executionContextId\":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ",\"url\":\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\",\"hash\":\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\"}}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
24: aload 2
25: new java.lang.StringBuilder
dup
ldc "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[],\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"TestRootNode\",\"scopeChain\":[{\"name\":\"TestRootNode\",\"type\":\"local\",\"object\":{\"description\":\"TestRootNode\",\"type\":\"object\",\"objectId\":\"1\"}},{\"name\":\"top\",\"type\":\"global\",\"object\":{\"description\":\"top\",\"type\":\"object\",\"objectId\":\"2\"}}],\"this\":{\"subtype\":\"null\",\"description\":\"null\",\"type\":\"object\",\"objectId\":\"3\"},\"functionLocation\":{\"scriptId\":\"0\",\"columnNumber\":0,\"lineNumber\":0},\"location\":{\"scriptId\":\"0\",\"columnNumber\":0,\"lineNumber\":0},\"url\":\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: ldc "}]}}\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
30: aload 2
ldc "{\"id\":1,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"1\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
31: aload 2
32: ldc "{\"result\":{\"result\":[{\"isOwn\":true,\"enumerable\":true,\"name\":\"o\",\"value\":{\"description\":\"Object LazyReadObject\",\"className\":\"Object\",\"type\":\"object\",\"objectId\":\"4\"},\"configurable\":true,\"writable\":true}],\"internalProperties\":[]},\"id\":1}\n"
33: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
34: aload 2
ldc "{\"id\":2,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"4\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
35: aload 2
36: ldc "{\"result\":{\"result\":[{\"isOwn\":true,\"enumerable\":true,\"name\":\"readReady\",\"value\":{\"description\":\"42\",\"type\":\"number\",\"value\":42},\"configurable\":true,\"writable\":false},{\"isOwn\":true,\"get\":{\"description\":\"\",\"className\":\"Function\",\"type\":\"function\",\"objectId\":\"6\"},\"enumerable\":true,\"name\":\"readLazy\",\"configurable\":true,\"writable\":false}],\"internalProperties\":[]},\"id\":2}\n"
37: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
38: lconst_0
aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
39: aload 2
ldc "{\"id\":10,\"method\":\"Runtime.callFunctionOn\",\"params\":{\"objectId\":\"4\",\"functionDeclaration\":\"function invokeGetter(arrayStr){let result=this;const properties=JSON.parse(arrayStr);for(let i=0,n=properties.length;i<n;++i)\\nresult=result[properties[i]];return result;}\",\"arguments\":[{\"value\":\"[\\\"readLazy\\\"]\"}],\"silent\":true}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
40: aload 2
41: ldc "{\"result\":{\"result\":{\"description\":\"43\",\"type\":\"number\",\"value\":43}},\"id\":10}\n"
42: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
43: lconst_1
aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
44: aload 2
ldc "{\"id\":11,\"method\":\"Runtime.callFunctionOn\",\"params\":{\"objectId\":\"4\",\"functionDeclaration\":\"function remoteFunction(propName) { return this[propName]; }\",\"arguments\":[{\"value\":\"readLazy\"}],\"silent\":true}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
45: aload 2
46: ldc "{\"result\":{\"result\":{\"description\":\"43\",\"type\":\"number\",\"value\":43}},\"id\":11}\n"
47: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
48: ldc 2
aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
49: aload 2
ldc "{\"id\":20,\"method\":\"Runtime.getProperties\",\"params\":{\"objectId\":\"2\"}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
50: aload 2
51: ldc "{\"result\":{\"result\":[{\"isOwn\":true,\"enumerable\":true,\"name\":\"readReady\",\"value\":{\"description\":\"42\",\"type\":\"number\",\"value\":42},\"configurable\":true,\"writable\":false},{\"isOwn\":true,\"get\":{\"description\":\"\",\"className\":\"Function\",\"type\":\"function\",\"objectId\":\"8\"},\"enumerable\":true,\"name\":\"readLazy\",\"configurable\":true,\"writable\":false}],\"internalProperties\":[]},\"id\":20}\n"
52: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
53: ldc 2
aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
54: aload 2
ldc "{\"id\":21,\"method\":\"Runtime.callFunctionOn\",\"params\":{\"objectId\":\"2\",\"functionDeclaration\":\"function invokeGetter(arrayStr) {\\n let result = this;\\n const properties = JSON.parse(arrayStr);\\n for (let i = 0, n = properties.length; i < n; ++i) {\\n result = result[properties[i]];\\n }\\n return result;\\n }\",\"arguments\":[{\"value\":\"[\\\"readLazy\\\"]\"}],\"silent\":true}}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
55: aload 2
56: ldc "{\"result\":{\"result\":{\"description\":\"43\",\"type\":\"number\",\"value\":43}},\"id\":21}\n"
57: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
58: ldc 3
aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
59: aload 2
ldc "{\"id\":100,\"method\":\"Debugger.resume\"}"
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.sendMessage:(Ljava/lang/String;)V
60: aload 2
61: ldc "{\"result\":{},\"id\":100}\n{\"method\":\"Debugger.resumed\"}\n"
62: invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.compareReceivedMessages:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
63: new com.oracle.truffle.api.test.polyglot.ProxyLanguage
dup
invokespecial com.oracle.truffle.api.test.polyglot.ProxyLanguage.<init>:()V
invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
pop
64: aload 2
invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorTester.finish:()V
65: return
end local 9 end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lcom/oracle/truffle/tools/chromeinspector/test/LazyAccessInspectDebugTest;
1 66 1 readLazyCount Ljava/util/concurrent/atomic/AtomicInteger;
2 66 2 tester Lcom/oracle/truffle/tools/chromeinspector/test/InspectorTester;
13 66 3 source Lorg/graalvm/polyglot/Source;
14 66 4 sourceURI Ljava/lang/String;
15 66 5 hash Ljava/lang/String;
17 66 6 id J
18 66 8 endLine I
19 66 9 endColumn I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "LazyAccessInspectDebugTest.java"
NestMembers:
com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage$Keys com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage$LazyReadObject com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage$MetaObject com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage$TestRootNode com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage$TestStatementNode
InnerClasses:
ReadWithSideEffectsLanguage = com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest$ReadWithSideEffectsLanguage of com.oracle.truffle.tools.chromeinspector.test.LazyAccessInspectDebugTest
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source