public abstract class com.oracle.truffle.js.nodes.access.PropertyCacheNode<T extends com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode<T>> extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.access.PropertyCacheNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
protected final java.lang.Object key;
descriptor: Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected T cacheNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Signature: TT;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.api.Assumption invalidationAssumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private static final com.oracle.truffle.js.runtime.util.DebugCounter polymorphicCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter megamorphicCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter cacheAssumptionInitializedCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter cacheAssumptionInvalidatedCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter propertyAssumptionCheckFailedCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter constantObjectCheckFailedCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter traversePrototypeShapeCheckCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.js.runtime.util.DebugCounter traversePrototypeChainShapeCheckCount;
descriptor: Lcom/oracle/truffle/js/runtime/util/DebugCounter;
flags: (0x001a) ACC_PRIVATE, 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=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode;
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.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
3: ldc "Polymorphic property cache count"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.polymorphicCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
4: ldc "Megamorphic property cache count"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.megamorphicCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
5: ldc "Property cache assumptions initialized"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheAssumptionInitializedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
6: ldc "Property cache assumptions invalidated"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheAssumptionInvalidatedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
7: ldc "Property assumption checks failed"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.propertyAssumptionCheckFailedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
8: ldc "Constant object checks failed"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.constantObjectCheckFailedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
9: ldc "TraversePrototypeShapeCheckNode count"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.traversePrototypeShapeCheckCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
10: ldc "TraversePrototypeChainShapeCheckNode count"
invokestatic com.oracle.truffle.js.runtime.util.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/util/DebugCounter;
putstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.traversePrototypeChainShapeCheckCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.Object, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
2: aload 0
aload 2
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
3: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 4
aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
ifne 4
aload 1
instanceof com.oracle.truffle.api.object.HiddenKey
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object com.oracle.truffle.js.runtime.JSContext
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 5 1 key Ljava/lang/Object;
0 5 2 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
key
context
public final java.lang.Object getKey();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
protected abstract T createGenericPropertyNode();
descriptor: ()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()TT;
protected abstract T createCachedPropertyNode(com.oracle.truffle.api.object.Property, , int, , );
descriptor: (Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;ILjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;ILjava/lang/Object;TT;)TT;
MethodParameters:
Name Flags
entry
thisObj
depth
value
currentHead
protected abstract T createUndefinedPropertyNode(, , int, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)TT;
MethodParameters:
Name Flags
thisObj
store
depth
value
protected abstract T createJavaPropertyNodeMaybe(, );
descriptor: (Ljava/lang/Object;I)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Ljava/lang/Object;I)TT;
MethodParameters:
Name Flags
thisObj
depth
protected abstract T createTruffleObjectPropertyNode();
descriptor: ()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()TT;
protected T specialize();
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.specialize:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 1 1 thisObj Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TT;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
protected T specialize(, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getLock:()Ljava/util/concurrent/locks/Lock;
astore 4
start local 4 1: aload 4
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 5
start local 5 3: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object java.lang.Object top java.util.concurrent.locks.Lock com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 4
aload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
if_acmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: aconst_null
astore 3
start local 3 8: aload 5
astore 9
start local 9 9: goto 26
10: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object java.lang.Object com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode java.util.concurrent.locks.Lock com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode int int int com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isGeneric:()Z
ifeq 14
11: iconst_1
istore 8
12: aload 9
astore 3
13: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 27
aload 9
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
ifnull 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iinc 6 1
15: aload 9
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isValid:()Z
ifne 18
16: iconst_1
istore 7
17: goto 27
18: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.sweep:()Z
pop
19: aload 3
ifnonnull 22
aload 9
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.accepts:(Ljava/lang/Object;)Z
ifeq 22
aload 9
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.acceptsValue:(Ljava/lang/Object;)Z
ifeq 22
20: aload 9
astore 3
21: goto 25
StackMap locals:
StackMap stack:
22: aload 0
aload 9
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isUnexpectedConstantObject:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Ljava/lang/Object;)Z
ifeq 25
23: iconst_1
istore 7
24: goto 27
25: StackMap locals:
StackMap stack:
aload 9
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 9
StackMap locals:
StackMap stack:
26: aload 9
ifnonnull 10
end local 9 27: StackMap locals:
StackMap stack:
iload 7
ifeq 33
28: aload 0
aload 5
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.checkForUnstableAssumption:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Ljava/lang/Object;)V
29: aload 0
aload 5
aload 5
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.filterValid:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.rewriteCached:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 5
30: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.traceAssumptionInvalidated:()V
31: aconst_null
astore 3
32: goto 41
33: StackMap locals:
StackMap stack:
aload 3
ifnonnull 41
34: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 35
iload 8
ifeq 35
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
35: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 5
iload 6
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createSpecialization:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;ILjava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 9
start local 9 36: aload 9
ifnonnull 39
37: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 5
38: goto 41
39: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 9
astore 3
40: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 41
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnonnull 41
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 9 end local 8 end local 7 end local 6 41: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object java.lang.Object com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode java.util.concurrent.locks.Lock com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 3
ifnull 3
end local 5 42: goto 46
end local 3 StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object java.lang.Object top java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
43: astore 10
44: aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
45: aload 10
athrow
start local 3 46: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode java.lang.Object java.lang.Object com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode java.util.concurrent.locks.Lock
StackMap stack:
aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
47: aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isGeneric:()Z
ifne 49
aload 3
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.accepts:(Ljava/lang/Object;)Z
ifeq 48
aload 3
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.acceptsValue:(Ljava/lang/Object;)Z
ifne 49
48: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
49: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 50 1 thisObj Ljava/lang/Object;
0 50 2 value Ljava/lang/Object;
8 43 3 res TT;
46 50 3 res TT;
1 50 4 lock Ljava/util/concurrent/locks/Lock;
3 42 5 currentHead TT;
5 41 6 cachedCount I
6 41 7 invalid Z
7 41 8 generic Z
9 27 9 c TT;
36 41 9 newNode TT;
Exception table:
from to target type
2 43 43 any
Signature: (Ljava/lang/Object;Ljava/lang/Object;)TT;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
thisObj
value
protected T createSpecialization(, T, int, );
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;ILjava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: aconst_null
astore 6
start local 6 2: aconst_null
astore 7
start local 7 3: aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifeq 8
4: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSAdapter.isJSAdapter:(Ljava/lang/Object;)Z
ifne 5
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
ifeq 6
StackMap locals: int com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode com.oracle.truffle.api.object.DynamicObject
StackMap stack:
5: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
instanceof com.oracle.truffle.api.object.HiddenKey
ifeq 42
6: StackMap locals:
StackMap stack:
aload 1
checkcast com.oracle.truffle.api.object.DynamicObject
astore 7
7: goto 42
StackMap locals:
StackMap stack:
8: aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isForeignObject:(Ljava/lang/Object;)Z
ifeq 12
9: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 10
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createTruffleObjectPropertyNode:()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 6
11: goto 42
12: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.wrapPrimitive:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 7
13: goto 42
14: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
aload 7
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.updateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 16
15: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.retryCache:()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
16: StackMap locals:
StackMap stack:
aload 7
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 8
start local 8 17: aload 7
invokestatic com.oracle.truffle.js.runtime.builtins.JSDictionary.isJSDictionaryObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 19
18: aload 0
aload 2
iload 3
ldc "dictionary object"
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.rewriteToGeneric:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;ILjava/lang/String;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
19: StackMap locals: com.oracle.truffle.api.object.Shape
StackMap stack:
iload 3
ifle 29
20: aload 7
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.getMutex:()Ljava/lang/Object;
dup
astore 9
monitorenter
21: aload 8
aload 2
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.tryMergeShapes:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Z
ifeq 25
22: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
aload 7
invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.updateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
pop
23: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.retryCache:()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
aload 9
monitorexit
24: areturn
25: StackMap locals: java.lang.Object
StackMap stack:
aload 9
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 9
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 8
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 9
start local 9 30: aload 9
ifnull 34
31: aload 0
aload 9
aload 1
iload 5
aload 4
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createCachedPropertyNode:(Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;ILjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 6
32: aload 6
ifnonnull 43
33: aconst_null
areturn
34: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 7
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.alwaysUseStore:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ifeq 37
35: aload 0
aload 1
aload 7
iload 5
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createUndefinedPropertyNode:(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 6
36: goto 43
37: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isOwnProperty:()Z
ifeq 39
38: goto 43
39: StackMap locals:
StackMap stack:
aload 7
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toJavaNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.DynamicObject
astore 7
40: aload 7
ifnull 42
41: iinc 5 1
end local 9 end local 8 42: StackMap locals:
StackMap stack:
aload 7
ifnonnull 14
43: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getPropertyCacheLimit:()I
if_icmpge 44
aload 6
ifnull 45
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isGeneric:()Z
ifeq 45
44: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
ldc "cache limit reached"
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.rewriteToGeneric:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;ILjava/lang/String;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
45: StackMap locals:
StackMap stack:
aload 6
ifnonnull 47
46: aload 0
aload 1
aload 1
iload 5
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createUndefinedPropertyNode:(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 6
47: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 2
iload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.insertCached:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;I)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
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 48 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 48 1 thisObj Ljava/lang/Object;
0 48 2 currentHead TT;
0 48 3 cachedCount I
0 48 4 value Ljava/lang/Object;
1 48 5 depth I
2 48 6 specialized TT;
3 48 7 store Lcom/oracle/truffle/api/object/DynamicObject;
17 42 8 cacheShape Lcom/oracle/truffle/api/object/Shape;
30 42 9 property Lcom/oracle/truffle/api/object/Property;
Exception table:
from to target type
21 24 27 any
25 26 27 any
27 28 27 any
Signature: (Ljava/lang/Object;TT;ILjava/lang/Object;)TT;
MethodParameters:
Name Flags
thisObj
currentHead
cachedCount
value
protected static boolean alwaysUseStore(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
ifne 2
aload 0
invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.isJSArrayBufferView:(Ljava/lang/Object;)Z
ifeq 1
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.isNonIntegerIndex:(Ljava/lang/Object;)Z
ifne 2
StackMap locals:
StackMap stack:
1: aload 1
instanceof com.oracle.truffle.api.object.HiddenKey
ifne 2
iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 store Lcom/oracle/truffle/api/object/DynamicObject;
0 3 1 key Ljava/lang/Object;
MethodParameters:
Name Flags
store
key
protected final void deoptimize();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: goto 7
3: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.inCompiledCode:()Z
ifeq 7
4: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.check:()V
5: goto 7
StackMap locals:
StackMap stack: com.oracle.truffle.api.nodes.InvalidAssumptionException
6: pop
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
Exception table:
from to target type
4 5 6 Class com.oracle.truffle.api.nodes.InvalidAssumptionException
protected T retryCache();
descriptor: ()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
ifnonnull 4
1: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "PropertyCacheNode"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
2: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheAssumptionInitializedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
3: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.reportPolymorphicSpecialize:()V
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
Signature: ()TT;
protected void invalidateCache();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
ifnull 4
1: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
ldc "PropertyCacheNode invalidation"
invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
2: aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "PropertyCacheNode"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidationAssumption:Lcom/oracle/truffle/api/Assumption;
3: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheAssumptionInvalidatedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
protected T insertCached(T, T, );
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;I)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidateCache:()V
2: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
pop
3: aload 1
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.setNext:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)V
4: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
5: iload 3
ifle 7
6: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.polymorphicCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
7: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.traceRewriteInsert:(Lcom/oracle/truffle/api/nodes/Node;I)V
8: getstatic com.oracle.truffle.js.runtime.JSConfig.TracePolymorphicPropertyAccess:Z
ifeq 10
iload 3
ifle 10
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "POLYMORPHIC PROPERTY ACCESS key='%s' %s\n%s\n---\n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aastore
dup
iconst_1
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aastore
dup
iconst_2
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.debugString:()Ljava/lang/String;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
10: StackMap locals:
StackMap stack:
aload 1
areturn
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/nodes/access/PropertyCacheNode<TT;>;
0 11 1 specialized TT;
0 11 2 currentHead TT;
0 11 3 cachedCount I
Signature: (TT;TT;I)TT;
MethodParameters:
Name Flags
specialized
currentHead
cachedCount
protected T rewriteToGeneric(T, int, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;ILjava/lang/String;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createGenericPropertyNode:()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 4
start local 4 2: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidateCache:()V
3: aload 0
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
pop
4: aload 0
aload 4
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
5: iload 2
ifle 8
iload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getPropertyCacheLimit:()I
if_icmplt 8
6: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.megamorphicCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
7: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.reportPolymorphicSpecialize:()V
8: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 0
aload 4
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.traceRewriteMegamorphic:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)V
9: 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 10 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 10 1 currentHead TT;
0 10 2 cachedCount I
0 10 3 reason Ljava/lang/String;
2 10 4 newNode TT;
Signature: (TT;ILjava/lang/String;)TT;
MethodParameters:
Name Flags
currentHead
cachedCount
reason
protected T rewriteCached(T, );
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.invalidateCache:()V
2: aload 0
aload 2
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 4 1 currentHead TT;
0 4 2 newHead TT;
Signature: (TT;TT;)TT;
MethodParameters:
Name Flags
currentHead
newHead
protected static <T extends com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode<T>> boolean tryMergeShapes(com.oracle.truffle.api.object.Shape, );
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: aload 1
astore 3
start local 3 3: goto 15
4: StackMap locals: int com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 3
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
ifnonnull 6
5: goto 14
6: StackMap locals:
StackMap stack:
aload 3
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 4
start local 4 7: aload 0
aload 4
if_acmpeq 14
aload 4
ifnull 14
aload 4
invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
ifeq 14
8: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 9
aload 0
invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.oracle.truffle.api.object.Shape
StackMap stack:
iload 2
aload 0
aload 4
invokevirtual com.oracle.truffle.api.object.Shape.tryMerge:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Shape;
ifnull 10
iconst_1
goto 11
StackMap locals:
StackMap stack: int
10: iconst_0
StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode int com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode com.oracle.truffle.api.object.Shape
StackMap stack: int int
11: ior
istore 2
12: aload 0
invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
ifne 14
13: goto 16
end local 4 14: StackMap locals:
StackMap stack:
aload 3
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 3
StackMap locals:
StackMap stack:
15: aload 3
ifnonnull 4
end local 3 16: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 cacheShape Lcom/oracle/truffle/api/object/Shape;
0 17 1 head TT;
2 17 2 result Z
3 16 3 cur TT;
7 14 4 other Lcom/oracle/truffle/api/object/Shape;
Signature: <T:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode<TT;>;>(Lcom/oracle/truffle/api/object/Shape;TT;)Z
MethodParameters:
Name Flags
cacheShape
head
protected void checkForUnstableAssumption(T, );
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
astore 3
start local 3 1: goto 14
2: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 3
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
astore 4
start local 4 3: aload 4
ifnonnull 5
4: goto 13
5: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode.isUnstable:()Z
ifeq 8
6: aload 0
iconst_0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.setPropertyAssumptionCheckEnabled:(Z)V
7: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.propertyAssumptionCheckFailedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
8: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isUnexpectedConstantObject:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Ljava/lang/Object;)Z
ifeq 13
9: aload 4
checkcast com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck
invokeinterface com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck.clearExpectedObject:()V
10: aload 0
iconst_0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.setPropertyAssumptionCheckEnabled:(Z)V
11: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.constantObjectCheckFailedCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
12: aload 0
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.traceRewriteEvictFinal:(Lcom/oracle/truffle/api/nodes/Node;)V
end local 4 13: StackMap locals:
StackMap stack:
aload 3
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 3
StackMap locals:
StackMap stack:
14: aload 3
ifnonnull 2
end local 3 15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 16 1 head TT;
0 16 2 thisObj Ljava/lang/Object;
1 15 3 cur TT;
3 13 4 check Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
Signature: (TT;Ljava/lang/Object;)V
MethodParameters:
Name Flags
head
thisObj
private boolean isUnexpectedConstantObject(T, );
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
instanceof com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck
ifeq 1
aload 1
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
checkcast com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck
invokeinterface com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck.getExpectedObject:()Ljava/lang/Object;
aload 2
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 2 1 cache TT;
0 2 2 thisObj Ljava/lang/Object;
Signature: (TT;Ljava/lang/Object;)Z
MethodParameters:
Name Flags
cache
thisObj
protected static <T extends com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode<T>> T filterValid();
descriptor: (Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.filterValid:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
astore 1
start local 1 3: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isValid:()Z
ifeq 7
4: aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.next:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
if_acmpne 6
5: aload 0
areturn
6: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.withNext:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
areturn
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 cache TT;
3 8 1 filteredNext TT;
Signature: <T:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode<TT;>;>(TT;)TT;
MethodParameters:
Name Flags
cache
protected static final com.oracle.truffle.api.object.DynamicObject wrapPrimitive(java.lang.Object, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
iconst_0
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toObjectFromPrimitive:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;Z)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifeq 2
aload 2
checkcast com.oracle.truffle.js.runtime.objects.JSDynamicObject
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.js.runtime.objects.JSDynamicObject
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 thisObject Ljava/lang/Object;
0 4 1 context Lcom/oracle/truffle/js/runtime/JSContext;
1 4 2 wrapper Ljava/lang/Object;
MethodParameters:
Name Flags
thisObject
context
protected final com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode createShapeCheckNode(com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.objects.JSDynamicObject, int, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;IZZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 3
ifne 2
1: aload 0
aload 1
aload 2
iload 4
iload 5
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createShapeCheckNodeDepth0:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;ZZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
areturn
2: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmpne 4
3: aload 0
aload 1
aload 2
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createShapeCheckNodeDepth1:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;IZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.createShapeCheckNodeDeeper:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;IZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
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 5 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 5 1 shape Lcom/oracle/truffle/api/object/Shape;
0 5 2 thisObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
0 5 3 depth I
0 5 4 isConstantObjectFinal Z
0 5 5 isDefine Z
MethodParameters:
Name Flags
shape
thisObj
depth
isConstantObjectFinal
isDefine
private com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode createShapeCheckNodeDepth0(com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.objects.JSDynamicObject, boolean, boolean);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;ZZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isGlobal:()Z
ifeq 2
iload 4
ifne 2
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isPropertyAssumptionCheckEnabled:()Z
ifeq 2
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPropertyAssumption:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 2
1: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$AssumptionShapeCheckNode
dup
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$AssumptionShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
areturn
2: StackMap locals:
StackMap stack:
iload 3
ifeq 7
3: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 4
iload 4
ifeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.isPropertyAssumptionCheckEnabled:()Z
ifeq 6
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPropertyAssumption:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 6
5: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode
dup
aload 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
areturn
6: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectShapeCheckNode
dup
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;)V
areturn
7: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 8
iload 3
ifeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$ShapeCheckNode
dup
aload 1
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$ShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 9 1 shape Lcom/oracle/truffle/api/object/Shape;
0 9 2 thisObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
0 9 3 isConstantObjectFinal Z
0 9 4 isDefine Z
MethodParameters:
Name Flags
shape
thisObj
isConstantObjectFinal
isDefine
private com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode createShapeCheckNodeDepth1(com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.objects.JSDynamicObject, int, boolean);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;IZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
iload 3
iconst_1
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
iload 3
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.prototypesInShape:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
ifeq 6
aload 0
aload 2
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.propertyAssumptionsValid:(Lcom/oracle/truffle/api/object/DynamicObject;IZ)Z
ifeq 6
2: iload 4
ifeq 4
3: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeShapeCheckNode
dup
aload 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
goto 5
4: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeShapeCheckNode
dup
aload 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
5: StackMap locals:
StackMap stack: com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode
areturn
6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.traversePrototypeShapeCheckCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
7: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeShapeCheckNode
dup
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 8 1 shape Lcom/oracle/truffle/api/object/Shape;
0 8 2 thisObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
0 8 3 depth I
0 8 4 isConstantObjectFinal Z
MethodParameters:
Name Flags
shape
thisObj
depth
isConstantObjectFinal
private com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode createShapeCheckNodeDeeper(com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.objects.JSDynamicObject, int, boolean);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;IZ)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
iload 3
iconst_1
if_icmpgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
iload 3
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.prototypesInShape:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
ifeq 6
aload 0
aload 2
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.propertyAssumptionsValid:(Lcom/oracle/truffle/api/object/DynamicObject;IZ)Z
ifeq 6
2: iload 4
ifeq 4
3: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeChainShapeCheckNode
dup
aload 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
iload 3
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeChainShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;Ljava/lang/Object;ILcom/oracle/truffle/js/runtime/JSContext;)V
goto 5
4: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainShapeCheckNode
dup
aload 1
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
iload 3
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;ILcom/oracle/truffle/js/runtime/JSContext;)V
5: StackMap locals:
StackMap stack: com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode
areturn
6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.traversePrototypeChainShapeCheckCount:Lcom/oracle/truffle/js/runtime/util/DebugCounter;
invokevirtual com.oracle.truffle.js.runtime.util.DebugCounter.inc:()V
7: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainShapeCheckNode
dup
aload 1
aload 2
iload 3
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;I)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 8 1 shape Lcom/oracle/truffle/api/object/Shape;
0 8 2 thisObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
0 8 3 depth I
0 8 4 isConstantObjectFinal Z
MethodParameters:
Name Flags
shape
thisObj
depth
isConstantObjectFinal
protected static boolean prototypesInShape(com.oracle.truffle.api.object.DynamicObject, int);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 7
3: StackMap locals: com.oracle.truffle.api.object.DynamicObject int
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.isPrototypeInShape:(Lcom/oracle/truffle/api/object/Shape;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 2
6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 1
if_icmplt 3
end local 3 8: iconst_1
ireturn
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 depth I
1 9 2 depthObject Lcom/oracle/truffle/api/object/DynamicObject;
2 8 3 i I
MethodParameters:
Name Flags
thisObj
depth
protected final boolean propertyAssumptionsValid(com.oracle.truffle.api.object.DynamicObject, int, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZ)Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.isSingleRealm:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 5
start local 5 4: iload 3
ifeq 6
aload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPropertyAssumption:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape
StackMap stack:
iconst_0
istore 6
start local 6 7: goto 16
8: StackMap locals: int
StackMap stack:
iload 2
ifne 9
iload 3
ifeq 11
StackMap locals:
StackMap stack:
9: aload 5
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPrototypeAssumption:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 11
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 4
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 4
12: aload 4
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 5
13: aload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
iconst_1
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPropertyAssumption:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Z)Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 15
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
iload 2
if_icmplt 8
end local 6 17: iconst_1
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 18 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 18 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
0 18 2 depth I
0 18 3 checkDepth0 Z
3 18 4 depthObject Lcom/oracle/truffle/api/object/DynamicObject;
4 18 5 depthShape Lcom/oracle/truffle/api/object/Shape;
7 17 6 i I
MethodParameters:
Name Flags
thisObj
depth
checkDepth0
protected final com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode createPrimitiveReceiverCheck(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 2
1: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$InstanceofCheckNode
dup
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$InstanceofCheckNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/runtime/JSContext;)V
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 3
aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isJSPrimitive:(Ljava/lang/Object;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.wrapPrimitive:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 3
start local 3 4: aload 3
iload 2
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.prototypesInShape:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
ifeq 7
aload 0
aload 3
iload 2
iconst_0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.propertyAssumptionsValid:(Lcom/oracle/truffle/api/object/DynamicObject;IZ)Z
ifeq 7
5: new com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainCheckNode
dup
aload 3
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 3
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
iload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;ILcom/oracle/truffle/js/runtime/JSContext;)V
astore 4
start local 4 6: goto 8
end local 4 7: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainCheckNode
dup
aload 3
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 3
iload 2
aload 3
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/DynamicObject;ILcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/js/runtime/JSContext;)V
astore 4
start local 4 8: StackMap locals: com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode
StackMap stack:
new com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrimitiveReceiverCheckNode
dup
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 4
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrimitiveReceiverCheckNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 9 1 thisObj Ljava/lang/Object;
0 9 2 depth I
4 9 3 wrapped Lcom/oracle/truffle/api/object/DynamicObject;
6 7 4 prototypeShapeCheck Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
8 9 4 prototypeShapeCheck Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
MethodParameters:
Name Flags
thisObj
depth
protected abstract boolean isGlobal();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract boolean isOwnProperty();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public final com.oracle.truffle.js.runtime.JSContext getContext();
descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
protected abstract boolean isPropertyAssumptionCheckEnabled();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void setPropertyAssumptionCheckEnabled(boolean);
descriptor: (Z)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
value
public com.oracle.truffle.api.nodes.NodeCost getCost();
descriptor: ()Lcom/oracle/truffle/api/nodes/NodeCost;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
ifnonnull 2
1: getstatic com.oracle.truffle.api.nodes.NodeCost.UNINITIALIZED:Lcom/oracle/truffle/api/nodes/NodeCost;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.isGeneric:()Z
ifeq 4
3: getstatic com.oracle.truffle.api.nodes.NodeCost.MEGAMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.cacheNode:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode.getNext:()Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode;
ifnonnull 6
5: getstatic com.oracle.truffle.api.nodes.NodeCost.MONOMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
areturn
6: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.nodes.NodeCost.POLYMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
protected static boolean isArrayLengthProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSArray$ArrayLengthProxyProperty
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isFunctionLengthProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isFunctionNameProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isClassPrototypeProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isStringLengthProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isLazyRegexResultIndexProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isLazyNamedCaptureGroupProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 1
aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.getConstantProxy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;
instanceof com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty
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 property Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
property
protected static boolean isNonIntegerIndex(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 0
instanceof java.lang.String
ifeq 1
ldc "Infinity"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
aload 0
checkcast java.lang.String
invokestatic com.oracle.truffle.js.runtime.JSRuntime.canonicalNumericIndexString:(Ljava/lang/String;)Ljava/lang/Object;
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
ldc "Infinity"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 key Ljava/lang/Object;
MethodParameters:
Name Flags
key
private void traceRewriteInsert(com.oracle.truffle.api.nodes.Node, int);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.TruffleOptions.TraceRewrites:Z
ifeq 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 3
start local 3 2: aload 3
ldc "[truffle] rewrite %-50s |Property %s |Node %s (%d/%d)%n"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aastore
dup
iconst_2
aload 1
aastore
dup
iconst_3
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getPropertyCacheLimit:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
end local 3 3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 4 1 newNode Lcom/oracle/truffle/api/nodes/Node;
0 4 2 cacheDepth I
2 3 3 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
newNode
cacheDepth
private void traceRewriteMegamorphic(com.oracle.truffle.api.nodes.Node, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.TruffleOptions.TraceRewrites:Z
ifeq 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 3
start local 3 2: aload 3
ldc "[truffle] rewrite %-50s |Property %s |Node %s |Reason %s (limit %d)%n"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aastore
dup
iconst_2
aload 1
aastore
dup
iconst_3
aload 2
aastore
dup
iconst_4
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getPropertyCacheLimit:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
end local 3 3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 4 1 newNode Lcom/oracle/truffle/api/nodes/Node;
0 4 2 reason Ljava/lang/String;
2 3 3 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
newNode
reason
protected void traceRewriteEvictFinal(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.TruffleOptions.TraceRewrites:Z
ifeq 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 2
start local 2 2: aload 2
ldc "[truffle] rewrite %-50s |Property %s |Node %s |Reason evict final%n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aastore
dup
iconst_2
aload 1
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
end local 2 3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 4 1 evicted Lcom/oracle/truffle/api/nodes/Node;
2 3 2 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
evicted
private void traceAssumptionInvalidated();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleOptions.TraceRewrites:Z
ifeq 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
astore 1
start local 1 2: aload 1
ldc "[truffle] rewrite %-50s |Property %s |Reason assumption invalidated%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode.key:Ljava/lang/Object;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
end local 1 3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
2 3 1 out Ljava/io/PrintStream;
protected java.lang.String getAccessorKey(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode.getKey:()Ljava/lang/Object;
invokestatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.getAccessorKey:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode<TT;>;
0 1 1 getset Ljava/lang/String;
MethodParameters:
Name Flags
getset
protected static java.lang.String getAccessorKey(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(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
instanceof java.lang.String
ifeq 2
aload 1
checkcast java.lang.String
goto 3
StackMap locals:
StackMap stack:
2: aload 1
checkcast com.oracle.truffle.js.runtime.objects.JSLazyString
invokevirtual com.oracle.truffle.js.runtime.objects.JSLazyString.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
3: astore 2
start local 2 4: aload 2
invokevirtual java.lang.String.length:()I
ifle 6
aload 2
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isLetter:(C)Z
ifeq 6
5: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
iconst_0
iconst_1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
6: StackMap locals: java.lang.String
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 getset Ljava/lang/String;
0 7 1 key Ljava/lang/Object;
4 7 2 origKey Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
getset
key
protected static com.oracle.truffle.api.object.DynamicObjectLibrary createCachedAccess(java.lang.Object, com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.nodes.access.PropertyCacheNode.$assertionsDisabled:Z
ifne 1
aload 0
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode
ifeq 3
2: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 2
invokevirtual com.oracle.truffle.api.library.LibraryFactory.create:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
areturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode
ifeq 5
aload 1
instanceof com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode
ifne 5
4: invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 2
invokevirtual com.oracle.truffle.api.library.LibraryFactory.create:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
areturn
5: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_5
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.object.DynamicObjectLibrary
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 key Ljava/lang/Object;
0 6 1 receiverCheck Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
0 6 2 store Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
key
receiverCheck
store
}
Signature: <T:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$CacheNode<TT;>;>Lcom/oracle/truffle/js/nodes/JavaScriptBaseNode;
SourceFile: "PropertyCacheNode.java"
NestMembers:
com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$AssumptionShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeChainShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ForeignLanguageCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$InstanceofCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$JSClassCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$NullCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrimitiveReceiverCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$ShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainShapeCheckNode com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeShapeCheckNode
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
protected abstract AbstractAssumptionShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected abstract AbstractShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final AssumptionShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$AssumptionShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
public abstract CacheNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$CacheNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ConstantObjectAssumptionShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ConstantObjectPrototypeChainShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeChainShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ConstantObjectPrototypeShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectPrototypeShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected abstract ConstantObjectReceiverCheck = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ConstantObjectShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ForeignLanguageCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ForeignLanguageCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final InstanceofCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$InstanceofCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final JSClassCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$JSClassCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final NullCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$NullCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final PrimitiveReceiverCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrimitiveReceiverCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final PrototypeChainCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final PrototypeChainShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeChainShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final PrototypeShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$PrototypeShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected abstract ReceiverCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final TraversePrototypeChainCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final TraversePrototypeChainShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeChainShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final TraversePrototypeShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$TraversePrototypeShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
public ArrayLengthProxyProperty = com.oracle.truffle.js.runtime.builtins.JSArray$ArrayLengthProxyProperty of com.oracle.truffle.js.runtime.builtins.JSArray
public final ClassPrototypeProxyProperty = com.oracle.truffle.js.runtime.builtins.JSFunction$ClassPrototypeProxyProperty of com.oracle.truffle.js.runtime.builtins.JSFunction
public FunctionLengthPropertyProxy = com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionLengthPropertyProxy of com.oracle.truffle.js.runtime.builtins.JSFunction
public FunctionNamePropertyProxy = com.oracle.truffle.js.runtime.builtins.JSFunction$FunctionNamePropertyProxy of com.oracle.truffle.js.runtime.builtins.JSFunction
public LazyNamedCaptureGroupProperty = com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyNamedCaptureGroupProperty of com.oracle.truffle.js.runtime.builtins.JSRegExp
public LazyRegexResultIndexProxyProperty = com.oracle.truffle.js.runtime.builtins.JSRegExp$LazyRegexResultIndexProxyProperty of com.oracle.truffle.js.runtime.builtins.JSRegExp
public final StringLengthProxyProperty = com.oracle.truffle.js.runtime.builtins.JSString$StringLengthProxyProperty of com.oracle.truffle.js.runtime.builtins.JSString