public final class com.oracle.truffle.js.runtime.builtins.JSDictionary extends com.oracle.truffle.js.runtime.builtins.JSNonProxy
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.runtime.builtins.JSDictionary
super_class: com.oracle.truffle.js.runtime.builtins.JSNonProxy
{
public static final java.lang.String CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "Object"
private static final com.oracle.truffle.api.object.HiddenKey HASHMAP_PROPERTY_NAME;
descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final com.oracle.truffle.js.runtime.builtins.JSDictionary INSTANCE;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
3: new com.oracle.truffle.api.object.HiddenKey
dup
ldc "%hashMap"
invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
putstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
4: new com.oracle.truffle.js.runtime.builtins.JSDictionary
dup
invokespecial com.oracle.truffle.js.runtime.builtins.JSDictionary.<init>:()V
putstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
public static boolean isJSDictionaryObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifeq 1
aload 0
checkcast com.oracle.truffle.api.object.DynamicObject
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public static boolean isJSDictionaryObject(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isInstance:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
obj
public java.lang.String getClassName(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc "Object"
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
object
public java.lang.String toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject, int, boolean, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZLcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.runtime.builtins.JSDictionary.defaultToString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 1 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 depth I
0 1 3 allowSideEffects Z
0 1 4 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
obj
depth
allowSideEffects
context
public java.lang.Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
aload 3
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyDescriptor
astore 5
start local 5 1: aload 5
ifnull 3
2: aload 5
aload 2
aload 4
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getValue:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
3: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
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 4 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 4 1 store Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 thisObj Ljava/lang/Object;
0 4 3 key Ljava/lang/Object;
0 4 4 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
1 4 5 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
store
thisObj
key
encapsulatingNode
public static java.lang.Object getValue(com.oracle.truffle.js.runtime.objects.PropertyDescriptor, java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
ifeq 5
1: aload 0
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getGet:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
astore 3
start local 3 2: aload 3
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 4
3: aload 3
aload 1
getstatic com.oracle.truffle.js.runtime.JSArguments.EMPTY_ARGUMENTS_ARRAY:[Ljava/lang/Object;
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
areturn
4: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
areturn
end local 3 5: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 6
aload 0
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 property Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
0 7 1 receiver Ljava/lang/Object;
0 7 2 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
2 5 3 getter Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
property
receiver
encapsulatingNode
public java.util.List<java.lang.Object> getOwnPropertyKeys(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.ordinaryOwnPropertyKeysSlow:(Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
astore 4
start local 4 2: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
invokeinterface org.graalvm.collections.EconomicMap.getKeys:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 8
StackMap locals: com.oracle.truffle.js.runtime.builtins.JSDictionary com.oracle.truffle.api.object.DynamicObject int int java.util.List top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 5
start local 5 4: iload 3
ifne 5
aload 5
instanceof com.oracle.truffle.js.runtime.Symbol
ifne 8
StackMap locals: com.oracle.truffle.js.runtime.builtins.JSDictionary com.oracle.truffle.api.object.DynamicObject int int java.util.List java.lang.Object java.util.Iterator
StackMap stack:
5: iload 2
ifne 7
aload 5
instanceof java.lang.String
ifeq 7
6: goto 8
7: StackMap locals:
StackMap stack:
aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 8: StackMap locals: com.oracle.truffle.js.runtime.builtins.JSDictionary com.oracle.truffle.api.object.DynamicObject int int java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: aload 4
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/oracle/truffle/js/runtime/JSRuntime.comparePropertyKeys(Ljava/lang/Object;Ljava/lang/Object;)I (6)
(Ljava/lang/Object;Ljava/lang/Object;)I
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
10: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 11 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 11 2 strings Z
0 11 3 symbols Z
2 11 4 keys Ljava/util/List<Ljava/lang/Object;>;
4 8 5 key Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
strings
symbols
public boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
astore 4
start local 4 1: aload 4
aload 2
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyDescriptor
astore 5
start local 5 2: aload 5
ifnull 9
3: aload 5
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
ifne 7
4: iload 3
ifeq 6
5: aload 2
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotConfigurableProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
6: StackMap locals: org.graalvm.collections.EconomicMap com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 4
aload 2
invokeinterface org.graalvm.collections.EconomicMap.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 3
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
ireturn
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 10 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 10 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 10 2 key Ljava/lang/Object;
0 10 3 isStrict Z
1 10 4 hashMap Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
2 10 5 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
isStrict
public boolean delete(com.oracle.truffle.api.object.DynamicObject, long, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
aload 1
lload 2
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
iload 4
invokevirtual com.oracle.truffle.js.runtime.builtins.JSDictionary.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 1 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 index J
0 1 4 isStrict Z
MethodParameters:
Name Flags
thisObj
index
isStrict
public boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
aload 2
invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 3 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 key Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
public boolean set(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 start local 7 0: lload 2
invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
astore 8
start local 8 1: aload 1
aload 8
aload 4
aload 5
iload 6
aload 7
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.dictionaryObjectSet:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 2 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 2 2 index J
0 2 4 value Ljava/lang/Object;
0 2 5 receiver Ljava/lang/Object;
0 2 6 isStrict Z
0 2 7 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
1 2 8 key Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
index
value
receiver
isStrict
encapsulatingNode
public boolean set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
aload 2
aload 3
aload 4
iload 5
aload 6
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.dictionaryObjectSet:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
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 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 1 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 key Ljava/lang/Object;
0 1 3 value Ljava/lang/Object;
0 1 4 receiver Ljava/lang/Object;
0 1 5 isStrict Z
0 1 6 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
value
receiver
isStrict
encapsulatingNode
protected static boolean dictionaryObjectSet(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
aload 0
if_acmpeq 2
1: aload 0
aload 1
aload 2
aload 3
iload 4
aload 5
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.ordinarySetWithReceiver:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyDescriptor
astore 6
start local 6 3: aload 6
ifnull 5
4: aload 1
aload 6
aload 0
aload 3
aload 2
iload 4
aload 5
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.setValue:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
5: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.getPropertyByKey:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 7
start local 7 6: aload 7
ifnull 8
7: aload 7
aload 0
aload 3
aload 2
iload 4
aload 5
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.setValue:(Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
8: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 0
aload 1
aload 2
aload 3
iload 4
iconst_0
aload 5
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.setPropertySlow:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZZLcom/oracle/truffle/api/nodes/Node;)Z
ireturn
end local 7 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 9 0 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 9 1 key Ljava/lang/Object;
0 9 2 value Ljava/lang/Object;
0 9 3 receiver Ljava/lang/Object;
0 9 4 isStrict Z
0 9 5 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
3 9 6 property Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
6 9 7 entry Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
thisObj
key
value
receiver
isStrict
encapsulatingNode
private static boolean setValue(java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
ifeq 8
1: aload 1
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getSet:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
astore 7
start local 7 2: aload 7
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 5
3: aload 7
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
aload 6
invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
pop
4: iconst_1
ireturn
5: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
iload 5
ifeq 7
6: aload 0
aload 2
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCannotSetAccessorProperty:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 7 8: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 9
aload 1
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
ifeq 12
10: aload 1
aload 4
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setValue:(Ljava/lang/Object;)V
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
iload 5
ifeq 14
13: aload 0
aload 3
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotWritableProperty:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
14: StackMap locals:
StackMap stack:
iconst_0
ireturn
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 15 0 key Ljava/lang/Object;
0 15 1 property Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
0 15 2 store Lcom/oracle/truffle/api/object/DynamicObject;
0 15 3 thisObj Ljava/lang/Object;
0 15 4 value Ljava/lang/Object;
0 15 5 isStrict Z
0 15 6 encapsulatingNode Lcom/oracle/truffle/api/nodes/Node;
2 8 7 setter Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
key
property
store
thisObj
value
isStrict
encapsulatingNode
public com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
aload 2
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyDescriptor
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
areturn
4: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 5 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 5 2 key Ljava/lang/Object;
2 5 3 prop Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
public boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.js.runtime.builtins.JSDictionary.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ifne 3
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 3
1: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
aload 2
aload 3
invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 1
ldc "defineOwnProperty"
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.makeOrdinaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
4: aload 0
aload 1
aload 2
aload 3
iload 4
invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
0 5 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 5 2 key Ljava/lang/Object;
0 5 3 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
0 5 4 doThrow Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
key
desc
doThrow
static org.graalvm.collections.EconomicMap<java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor> getHashMap(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 1
start local 1 2: aload 1
aload 0
iconst_0
invokevirtual com.oracle.truffle.api.object.Property.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
checkcast org.graalvm.collections.EconomicMap
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
2 3 1 hashMapProperty Lcom/oracle/truffle/api/object/Property;
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
MethodParameters:
Name Flags
obj
public static void makeDictionaryObject(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.isJSOrdinaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 2
start local 2 4: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 6
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 5
aload 2
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
ifnull 6
StackMap locals: com.oracle.truffle.api.object.Shape
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
astore 3
start local 3 7: aload 3
aload 2
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.makeEmptyShapeForNewType:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
astore 4
start local 4 8: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 9
aload 4
invokevirtual com.oracle.truffle.api.object.Shape.getFlags:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.hasExternalProperties:(I)Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape
StackMap stack:
invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
astore 5
start local 5 10: aload 2
iconst_1
invokevirtual com.oracle.truffle.api.object.Shape.getPropertyListInternal:(Z)Ljava/util/List;
astore 6
start local 6 11: new java.util.ArrayList
dup
aload 6
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 12: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 18
StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List top java.util.Iterator
StackMap stack:
13: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 8
start local 8 14: aload 8
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
astore 10
start local 10 15: aload 5
aload 0
aload 10
aconst_null
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 16: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 17
aload 11
ifnonnull 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List com.oracle.truffle.api.object.Property java.util.Iterator java.lang.Object java.lang.Object
StackMap stack:
aload 7
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 8 18: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
19: aload 5
aload 0
aload 4
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.resetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)Z
pop
20: invokestatic org.graalvm.collections.EconomicMap.create:()Lorg/graalvm/collections/EconomicMap;
astore 8
start local 8 21: iconst_0
istore 9
start local 9 22: goto 35
23: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List org.graalvm.collections.EconomicMap int
StackMap stack:
aload 6
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 10
start local 10 24: aload 10
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
astore 11
start local 11 25: aload 4
aload 11
invokevirtual com.oracle.truffle.api.object.Shape.hasProperty:(Ljava/lang/Object;)Z
ifne 34
26: aload 7
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 12
start local 12 27: aload 11
instanceof com.oracle.truffle.api.object.HiddenKey
ifne 28
aload 10
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 33
28: StackMap locals: com.oracle.truffle.api.object.Property java.lang.Object java.lang.Object
StackMap stack:
aload 10
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.isConstant:()Z
ifeq 31
29: aload 5
aload 0
aload 11
aload 12
aload 10
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
30: goto 34
31: StackMap locals:
StackMap stack:
aload 5
aload 0
aload 11
aload 12
aload 10
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putWithFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
32: goto 34
33: StackMap locals:
StackMap stack:
aload 8
aload 11
aload 10
aload 12
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.toPropertyDescriptor:(Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 end local 10 34: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
35: iload 9
aload 7
invokeinterface java.util.List.size:()I
if_icmplt 23
end local 9 36: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
aload 8
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
37: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 39
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 38
aload 0
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
ifnonnull 39
StackMap locals:
StackMap stack:
38: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: StackMap locals:
StackMap stack:
return
end local 8 end local 7 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 40 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 40 1 reason Ljava/lang/String;
4 40 2 currentShape Lcom/oracle/truffle/api/object/Shape;
7 40 3 context Lcom/oracle/truffle/js/runtime/JSContext;
8 40 4 newRootShape Lcom/oracle/truffle/api/object/Shape;
10 40 5 lib Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
11 40 6 allProperties Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
12 40 7 archive Ljava/util/List<Ljava/lang/Object;>;
14 18 8 prop Lcom/oracle/truffle/api/object/Property;
15 18 10 key Ljava/lang/Object;
16 18 11 value Ljava/lang/Object;
21 40 8 hashMap Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
22 36 9 i I
24 34 10 p Lcom/oracle/truffle/api/object/Property;
25 34 11 key Ljava/lang/Object;
27 34 12 value Ljava/lang/Object;
MethodParameters:
Name Flags
obj
reason
private static com.oracle.truffle.api.object.Shape makeEmptyShapeForNewType(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.builtins.JSClass, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPrototypeProperty:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Property;
astore 4
start local 4 1: aload 4
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.isConstant:()Z
ifne 3
2: aload 0
aload 2
invokevirtual com.oracle.truffle.js.runtime.JSContext.makeEmptyShapeWithPrototypeInObject:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Lcom/oracle/truffle/api/object/Shape;
areturn
3: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 3
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
astore 5
start local 5 4: aload 5
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 6
5: aload 0
aload 2
invokevirtual com.oracle.truffle.js.runtime.JSContext.makeEmptyShapeWithNullPrototype:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;)Lcom/oracle/truffle/api/object/Shape;
areturn
6: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 5
aload 2
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
areturn
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 7 0 context Lcom/oracle/truffle/js/runtime/JSContext;
0 7 1 currentShape Lcom/oracle/truffle/api/object/Shape;
0 7 2 jsclass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
0 7 3 fromObject Lcom/oracle/truffle/api/object/DynamicObject;
1 7 4 prototypeProperty Lcom/oracle/truffle/api/object/Property;
4 7 5 prototype Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
currentShape
jsclass
fromObject
private static com.oracle.truffle.js.runtime.objects.PropertyDescriptor toPropertyDescriptor(com.oracle.truffle.api.object.Property, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isAccessor:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 5
1: aload 1
checkcast com.oracle.truffle.js.runtime.objects.Accessor
invokevirtual com.oracle.truffle.js.runtime.objects.Accessor.getGetter:()Lcom/oracle/truffle/api/object/DynamicObject;
aload 1
checkcast com.oracle.truffle.js.runtime.objects.Accessor
invokevirtual com.oracle.truffle.js.runtime.objects.Accessor.getSetter:()Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createAccessor:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 2
start local 2 2: aload 2
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isConfigurable:(Lcom/oracle/truffle/api/object/Property;)Z
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setConfigurable:(Z)V
3: aload 2
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isEnumerable:(Lcom/oracle/truffle/api/object/Property;)Z
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setEnumerable:(Z)V
4: goto 7
end local 2 5: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 6
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isData:(Lcom/oracle/truffle/api/object/Property;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isEnumerable:(Lcom/oracle/truffle/api/object/Property;)Z
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isWritable:(Lcom/oracle/truffle/api/object/Property;)Z
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isConfigurable:(Lcom/oracle/truffle/api/object/Property;)Z
invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 2
start local 2 7: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 p Lcom/oracle/truffle/api/object/Property;
0 8 1 value Ljava/lang/Object;
2 5 2 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
7 8 2 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
MethodParameters:
Name Flags
p
value
private static void makeOrdinaryObject(com.oracle.truffle.api.object.DynamicObject, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=14, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.getHashMap:(Lcom/oracle/truffle/api/object/DynamicObject;)Lorg/graalvm/collections/EconomicMap;
astore 2
start local 2 2: aload 0
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 3
start local 3 3: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
astore 4
start local 4 4: aload 4
aload 3
getstatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSOrdinary;
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.makeEmptyShapeForNewType:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
astore 5
start local 5 5: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
astore 6
start local 6 6: aload 3
iconst_1
invokevirtual com.oracle.truffle.api.object.Shape.getPropertyListInternal:(Z)Ljava/util/List;
astore 7
start local 7 7: new java.util.ArrayList
dup
aload 7
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
start local 8 8: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 15
StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List top java.util.Iterator
StackMap stack:
9: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 9
start local 9 10: aload 9
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
astore 11
start local 11 11: aload 6
aload 0
aload 11
aconst_null
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 12
start local 12 12: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
aload 11
invokevirtual com.oracle.truffle.api.object.HiddenKey.equals:(Ljava/lang/Object;)Z
ifeq 14
13: goto 15
14: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List com.oracle.truffle.api.object.Property java.util.Iterator java.lang.Object java.lang.Object
StackMap stack:
aload 8
new java.util.AbstractMap$SimpleImmutableEntry
dup
aload 9
aload 12
invokespecial java.util.AbstractMap$SimpleImmutableEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 9 15: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
16: aload 6
aload 0
aload 5
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.resetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)Z
pop
17: iconst_0
istore 9
start local 9 18: goto 29
19: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List int
StackMap stack:
aload 8
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 20: aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 11
start local 11 21: aload 11
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
astore 12
start local 12 22: aload 5
aload 12
invokevirtual com.oracle.truffle.api.object.Shape.hasProperty:(Ljava/lang/Object;)Z
ifne 28
23: aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 13
start local 13 24: aload 11
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.isConstant:()Z
ifeq 27
25: aload 6
aload 0
aload 12
aload 13
aload 11
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putConstant:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
26: goto 28
27: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List int java.util.Map$Entry com.oracle.truffle.api.object.Property java.lang.Object java.lang.Object
StackMap stack:
aload 6
aload 0
aload 12
aload 13
aload 11
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.putWithFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
end local 13 end local 12 end local 11 end local 10 28: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List int
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
29: iload 9
aload 8
invokeinterface java.util.List.size:()I
if_icmplt 19
end local 9 30: aload 2
invokeinterface org.graalvm.collections.EconomicMap.getEntries:()Lorg/graalvm/collections/MapCursor;
astore 9
start local 9 31: goto 41
32: StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String org.graalvm.collections.EconomicMap com.oracle.truffle.api.object.Shape com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.DynamicObjectLibrary java.util.List java.util.List org.graalvm.collections.MapCursor
StackMap stack:
aload 9
invokeinterface org.graalvm.collections.MapCursor.getKey:()Ljava/lang/Object;
astore 10
start local 10 33: aload 9
invokeinterface org.graalvm.collections.MapCursor.getValue:()Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyDescriptor
astore 11
start local 11 34: aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isDataDescriptor:()Z
ifeq 40
35: aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
astore 12
start local 12 36: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 38
aload 12
instanceof com.oracle.truffle.js.runtime.objects.Accessor
ifne 37
aload 12
instanceof com.oracle.truffle.js.runtime.objects.PropertyProxy
ifeq 38
StackMap locals: java.lang.Object com.oracle.truffle.js.runtime.objects.PropertyDescriptor java.lang.Object
StackMap stack:
37: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
aload 0
aload 10
aload 12
aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getFlags:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineDataProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
end local 12 39: goto 41
40: StackMap locals:
StackMap stack:
aload 0
aload 10
new com.oracle.truffle.js.runtime.objects.Accessor
dup
aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getGet:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getSet:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
invokespecial com.oracle.truffle.js.runtime.objects.Accessor.<init>:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)V
aload 11
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getFlags:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineAccessorProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/Accessor;I)V
end local 11 end local 10 41: StackMap locals:
StackMap stack:
aload 9
invokeinterface org.graalvm.collections.MapCursor.advance:()Z
ifne 32
42: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 44
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.isJSOrdinaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 43
aload 0
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
ifnull 44
StackMap locals:
StackMap stack:
43: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
44: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 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 45 0 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 45 1 reason Ljava/lang/String;
2 45 2 hashMap Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
3 45 3 oldShape Lcom/oracle/truffle/api/object/Shape;
4 45 4 context Lcom/oracle/truffle/js/runtime/JSContext;
5 45 5 newRootShape Lcom/oracle/truffle/api/object/Shape;
6 45 6 lib Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
7 45 7 allProperties Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
8 45 8 archive Ljava/util/List<Ljava/util/Map$Entry<Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;>;>;
10 15 9 prop Lcom/oracle/truffle/api/object/Property;
11 15 11 key Ljava/lang/Object;
12 15 12 value Ljava/lang/Object;
18 30 9 i I
20 28 10 e Ljava/util/Map$Entry<Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;>;
21 28 11 p Lcom/oracle/truffle/api/object/Property;
22 28 12 key Ljava/lang/Object;
24 28 13 value Ljava/lang/Object;
31 45 9 cursor Lorg/graalvm/collections/MapCursor<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
33 41 10 key Ljava/lang/Object;
34 41 11 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
36 39 12 value Ljava/lang/Object;
MethodParameters:
Name Flags
obj
reason
public static com.oracle.truffle.api.object.Shape makeDictionaryShape(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.$assertionsDisabled:Z
ifne 1
aload 1
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.getProtoChildShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/Shape;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lcom/oracle/truffle/js/runtime/JSContext;
0 2 1 prototype Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
prototype
public static com.oracle.truffle.api.object.DynamicObject create(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getDictionaryObjectFactory:()Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
astore 1
start local 1 1: aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
astore 2
start local 2 2: aload 1
aload 2
invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.getShape:(Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/Shape;
invokestatic com.oracle.truffle.js.runtime.objects.JSOrdinaryObject.create:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/js/runtime/objects/JSOrdinaryObject;
astore 3
start local 3 3: aload 1
aload 3
aload 2
invokevirtual com.oracle.truffle.js.runtime.builtins.JSObjectFactory.initProto:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
pop
4: aload 3
getstatic com.oracle.truffle.js.runtime.builtins.JSDictionary.HASHMAP_PROPERTY_NAME:Lcom/oracle/truffle/api/object/HiddenKey;
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.newHashMap:()Lorg/graalvm/collections/EconomicMap;
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putHiddenProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)V
5: aload 0
aload 3
invokevirtual com.oracle.truffle.js.runtime.JSContext.trackAllocation:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Lcom/oracle/truffle/js/runtime/JSContext;
1 6 1 factory Lcom/oracle/truffle/js/runtime/builtins/JSObjectFactory;
2 6 2 realm Lcom/oracle/truffle/js/runtime/JSRealm;
3 6 3 obj Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
context
private static org.graalvm.collections.EconomicMap<java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor> newHashMap();
descriptor: ()Lorg/graalvm/collections/EconomicMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.graalvm.collections.EconomicMap.create:()Lorg/graalvm/collections/EconomicMap;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Lorg/graalvm/collections/EconomicMap<Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;>;
public boolean usesOrdinaryGetOwnProperty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/runtime/builtins/JSDictionary;
}
SourceFile: "JSDictionary.java"
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public SimpleImmutableEntry = java.util.AbstractMap$SimpleImmutableEntry of java.util.AbstractMap
public abstract Entry = java.util.Map$Entry of java.util.Map