public class com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler
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 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler this
0: .line 53
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/threading/JavaAsyncTaskScheduler;
public void testJavaWakeup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler this
0: .line 95
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.threading.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 1 /* cx */
start local 1 // org.graalvm.polyglot.Context cx
1: .line 96
new java.util.concurrent.LinkedBlockingDeque
dup
invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
astore 2 /* sharedQueue */
start local 2 // java.util.Queue sharedQueue
2: .line 97
new com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example
dup
aload 2 /* sharedQueue */
invokespecial com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example.<init>:(Ljava/util/Queue;)V
astore 3 /* async */
start local 3 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example async
3: .line 99
aload 1 /* cx */
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "queue"
aload 2 /* sharedQueue */
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
4: .line 100
aload 1 /* cx */
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "javaAsync"
aload 3 /* async */
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
5: .line 102
aload 1 /* cx */
ldc "js"
ldc "javaAsync.doAsynchronousWork();var data = queue.take();data;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4 /* data */
start local 4 // org.graalvm.polyglot.Value data
6: .line 106
aload 4 /* data */
invokevirtual org.graalvm.polyglot.Value.fitsInDouble:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: .line 107
aload 4 /* data */
invokevirtual org.graalvm.polyglot.Value.asDouble:()D
ldc 42.0
dcmpl
iflt 8
iconst_1
goto 9
StackMap locals: com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler org.graalvm.polyglot.Context java.util.Queue com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example org.graalvm.polyglot.Value
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: invokestatic org.junit.Assert.assertTrue:(Z)V
end local 4 // org.graalvm.polyglot.Value data
10: .line 108
goto 14
StackMap locals: com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler org.graalvm.polyglot.Context java.util.Queue com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example
StackMap stack: java.lang.Throwable
11: astore 5
12: .line 109
aload 1 /* cx */
invokevirtual org.graalvm.polyglot.Context.close:()V
13: .line 110
aload 5
athrow
14: .line 109
StackMap locals:
StackMap stack:
aload 1 /* cx */
invokevirtual org.graalvm.polyglot.Context.close:()V
15: .line 111
return
end local 3 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example async
end local 2 // java.util.Queue sharedQueue
end local 1 // org.graalvm.polyglot.Context cx
end local 0 // com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/threading/JavaAsyncTaskScheduler;
1 16 1 cx Lorg/graalvm/polyglot/Context;
2 16 2 sharedQueue Ljava/util/Queue<Ljava/lang/Object;>;
3 16 3 async Lcom/oracle/truffle/js/test/threading/JavaAsyncTaskScheduler$Example;
6 10 4 data Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
5 11 11 any
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "JavaAsyncTaskScheduler.java"
NestMembers:
com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example$1
InnerClasses:
public Example = com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler$Example of com.oracle.truffle.js.test.threading.JavaAsyncTaskScheduler
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context