public class com.oracle.truffle.sl.test.SLFactorialTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.sl.test.SLFactorialTest
super_class: java.lang.Object
{
private org.graalvm.polyglot.Context context;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value factorial;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
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/sl/test/SLFactorialTest;
public void initEngine();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.sl.test.SLFactorialTest.context:Lorg/graalvm/polyglot/Context;
1: aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
ldc "\nfunction fac(n) {\n if (n <= 1) {\n return 1;\n }\n prev = fac(n - 1);\n return prev * n;\n}\n"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
2: aload 0
aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "fac"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.truffle.sl.test.SLFactorialTest.factorial:Lorg/graalvm/polyglot/Value;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/sl/test/SLFactorialTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Before()
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLFactorialTest;
RuntimeVisibleAnnotations:
org.junit.After()
public void factorialOf5();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.factorial:Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/lang/Number;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Number
astore 1
start local 1 1: ldc 120
aload 1
invokevirtual java.lang.Number.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/test/SLFactorialTest;
1 3 1 ret Ljava/lang/Number;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void factorialOf3();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.factorial:Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/lang/Number;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Number
astore 1
start local 1 1: ldc 6
aload 1
invokevirtual java.lang.Number.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/test/SLFactorialTest;
1 3 1 ret Ljava/lang/Number;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void factorialOf1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLFactorialTest.factorial:Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/lang/Number;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.Number
astore 1
start local 1 1: lconst_1
aload 1
invokevirtual java.lang.Number.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/test/SLFactorialTest;
1 3 1 ret Ljava/lang/Number;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "SLFactorialTest.java"