public class com.oracle.truffle.js.test.instrumentation.GR22048
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.instrumentation.GR22048
super_class: java.lang.Object
{
static final java.lang.ThreadLocal<java.lang.Object> filterTL;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/lang/Object;>;
static final java.lang.ThreadLocal<org.graalvm.polyglot.Context> contextTL;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lorg/graalvm/polyglot/Context;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic com.oracle.truffle.js.test.instrumentation.GR22048.filterTL:Ljava/lang/ThreadLocal;
1: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic com.oracle.truffle.js.test.instrumentation.GR22048.contextTL:Ljava/lang/ThreadLocal;
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/js/test/instrumentation/GR22048;
public void cleanup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.test.instrumentation.GR22048.filterTL:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
1: getstatic com.oracle.truffle.js.test.instrumentation.GR22048.contextTL:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/instrumentation/GR22048;
RuntimeVisibleAnnotations:
org.junit.After()
public void testReentrant1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, 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.instrumentation.TestUtil.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: getstatic com.oracle.truffle.js.test.instrumentation.GR22048.contextTL:Ljava/lang/ThreadLocal;
aload 3
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
3: aload 3
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "instrument"
new com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller
dup
aload 3
invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
invokespecial com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller.<init>:(Lorg/graalvm/polyglot/Engine;)V
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
4: ldc "js"
ldc "function rootNameIs(name){ return true; }\ninstrument(rootNameIs);\n"
5: ldc "test.js"
6: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
7: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
8: astore 4
start local 4 9: aload 3
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
end local 4 10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.instrumentation.GR22048 java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/instrumentation/GR22048;
2 12 3 context Lorg/graalvm/polyglot/Context;
9 10 4 src Lorg/graalvm/polyglot/Source;
Exception table:
from to target type
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReentrant2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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.instrumentation.TestUtil.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: getstatic com.oracle.truffle.js.test.instrumentation.GR22048.contextTL:Ljava/lang/ThreadLocal;
aload 3
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
3: aload 3
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "instrument"
new com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller
dup
aload 3
invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
invokespecial com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller.<init>:(Lorg/graalvm/polyglot/Engine;)V
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
4: ldc "js"
ldc "(function fib(n) {\n function rootNameIs(name){ return true; }\n if (n < 2) return 1;\n return ((n == 5) ? instrument(rootNameIs) : 0) + fib(n - 1) + fib(n - 2);\n})\n"
5: ldc "test.js"
6: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
7: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
8: astore 4
start local 4 9: aload 3
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 10: aload 5
iconst_1
anewarray java.lang.Object
dup
iconst_0
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
end local 5 end local 4 11: aload 3
ifnull 17
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 17
StackMap locals: com.oracle.truffle.js.test.instrumentation.GR22048 java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
12: astore 1
aload 3
ifnull 13
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
13: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 2
aload 1
ifnonnull 15
aload 2
astore 1
goto 16
StackMap locals:
StackMap stack:
15: aload 1
aload 2
if_acmpeq 16
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 1
athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/js/test/instrumentation/GR22048;
2 13 3 context Lorg/graalvm/polyglot/Context;
9 11 4 src Lorg/graalvm/polyglot/Source;
10 11 5 f Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 11 12 any
1 14 14 any
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "GR22048.java"
NestMembers:
com.oracle.truffle.js.test.instrumentation.GR22048$GR22048Instrument com.oracle.truffle.js.test.instrumentation.GR22048$GR22048Instrument$1 com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller
InnerClasses:
public GR22048Instrument = com.oracle.truffle.js.test.instrumentation.GR22048$GR22048Instrument of com.oracle.truffle.js.test.instrumentation.GR22048
public InstrumentInstaller = com.oracle.truffle.js.test.instrumentation.GR22048$InstrumentInstaller of com.oracle.truffle.js.test.instrumentation.GR22048
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source