public class com.oracle.truffle.js.test.runtime.MultiContextShapeTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.runtime.MultiContextShapeTest
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 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/runtime/MultiContextShapeTest;
public void ordinaryObjectShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "({key: 'value'});"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: ldc "Object.create(null);"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
2: ldc "Object.create({});"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void arrayShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "[3,1,4,1,5,9,2,6,5,3,5,9]"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void promiseShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Promise.resolve(42);"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void functionShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "(function() {});"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: ldc "function foo() {} foo;"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void argumentsShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "(function() {return arguments;})();"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: ldc "(function() {'use strict'; return arguments;})();"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void classShape();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "class C {} C;"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
1: ldc "class C extends null {} C;"
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.testSameShapeAcrossContexts:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/runtime/MultiContextShapeTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testSameShapeAcrossContexts(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=12, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: invokestatic com.oracle.truffle.js.test.JSTest.newEngineBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 20
5: StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.api.object.Shape int
StackMap stack:
aconst_null
astore 6
aconst_null
astore 7
6: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 3
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 8
start local 8 7: aload 8
ldc "js"
aload 0
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 9
start local 9 8: aload 8
aload 9
invokestatic com.oracle.truffle.js.test.runtime.MultiContextShapeTest.unwrapJSObject:(Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Value;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 10
start local 10 9: aload 10
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 11
start local 11 10: aload 4
ifnull 12
11: aload 4
aload 11
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
12: StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.api.object.Shape int java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context org.graalvm.polyglot.Value com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape
StackMap stack:
aload 11
astore 4
end local 11 end local 10 end local 9 13: aload 8
ifnull 19
aload 8
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 19
StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.api.object.Shape int java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
14: astore 6
aload 8
ifnull 15
aload 8
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 8 StackMap locals:
StackMap stack:
15: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 7
aload 6
ifnonnull 17
aload 7
astore 6
goto 18
StackMap locals:
StackMap stack:
17: aload 6
aload 7
if_acmpeq 18
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 6
athrow
19: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
20: iload 5
iconst_2
if_icmplt 5
end local 5 end local 4 21: aload 3
ifnull 27
aload 3
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 27
StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine
StackMap stack: java.lang.Throwable
22: astore 1
aload 3
ifnull 23
aload 3
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 3 StackMap locals:
StackMap stack:
23: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 2
aload 1
ifnonnull 25
aload 2
astore 1
goto 26
StackMap locals:
StackMap stack:
25: aload 1
aload 2
if_acmpeq 26
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
26: aload 1
athrow
27: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 source Ljava/lang/String;
2 23 3 engine Lorg/graalvm/polyglot/Engine;
3 21 4 lastShape Lcom/oracle/truffle/api/object/Shape;
4 21 5 i I
7 15 8 c Lorg/graalvm/polyglot/Context;
8 13 9 object Lorg/graalvm/polyglot/Value;
9 13 10 jsobject Lcom/oracle/truffle/api/object/DynamicObject;
10 13 11 objShape Lcom/oracle/truffle/api/object/Shape;
Exception table:
from to target type
7 13 14 any
6 16 16 any
2 21 22 any
1 24 24 any
MethodParameters:
Name Flags
source
private static com.oracle.truffle.api.object.DynamicObject unwrapJSObject(org.graalvm.polyglot.Context, org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Value;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "_testObject"
aload 1
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getJSRealm:(Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getGlobalObject:()Lcom/oracle/truffle/api/object/DynamicObject;
ldc "_testObject"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 c Lorg/graalvm/polyglot/Context;
0 2 1 value Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
c
value
}
SourceFile: "MultiContextShapeTest.java"
InnerClasses:
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine