public final class com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode extends com.oracle.truffle.js.nodes.access.PropertySetNode$LinkedPropertySetNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode
super_class: com.oracle.truffle.js.nodes.access.PropertySetNode$LinkedPropertySetNode
{
private com.oracle.truffle.js.nodes.array.ArrayLengthNode$ArrayLengthWriteNode arrayLengthWrite;
descriptor: Lcom/oracle/truffle/js/nodes/array/ArrayLengthNode$ArrayLengthWriteNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.api.object.Property property;
descriptor: Lcom/oracle/truffle/api/object/Property;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isStrict;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile errorBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, 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/PropertySetNode;
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.PropertySetNode$ArrayLengthPropertySetNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.truffle.api.object.Property, com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode, boolean);
descriptor: (Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokespecial com.oracle.truffle.js.nodes.access.PropertySetNode$LinkedPropertySetNode.<init>:(Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
2: getstatic com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.$assertionsDisabled:Z
ifne 4
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isData:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 3
aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isWritable:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 3
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertySetNode.isArrayLengthProperty:(Lcom/oracle/truffle/api/object/Property;)Z
ifne 4
StackMap locals: com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode com.oracle.truffle.api.object.Property com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode int
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.property:Lcom/oracle/truffle/api/object/Property;
5: aload 0
iload 3
putfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.isStrict:Z
6: aload 0
iload 3
invokestatic com.oracle.truffle.js.nodes.array.ArrayLengthNode$ArrayLengthWriteNode.create:(Z)Lcom/oracle/truffle/js/nodes/array/ArrayLengthNode$ArrayLengthWriteNode;
putfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.arrayLengthWrite:Lcom/oracle/truffle/js/nodes/array/ArrayLengthNode$ArrayLengthWriteNode;
7: return
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/PropertySetNode$ArrayLengthPropertySetNode;
0 8 1 property Lcom/oracle/truffle/api/object/Property;
0 8 2 shapeCheck Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$AbstractShapeCheckNode;
0 8 3 isStrict Z
MethodParameters:
Name Flags
property
shapeCheck
isStrict
protected boolean setValue(java.lang.Object, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertySetNode, boolean);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertySetNode;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode.getStore:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 6
start local 6 1: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.property:Lcom/oracle/truffle/api/object/Property;
aload 6
iload 5
invokevirtual com.oracle.truffle.api.object.Property.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.PropertyProxy
aload 6
aload 2
invokeinterface com.oracle.truffle.js.runtime.objects.PropertyProxy.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
istore 7
start local 7 2: iload 7
ifne 5
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.isStrict:Z
ifeq 5
3: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
4: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.property:Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
aload 1
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotWritableProperty:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
5: StackMap locals: com.oracle.truffle.api.object.DynamicObject int
StackMap stack:
iconst_1
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/nodes/access/PropertySetNode$ArrayLengthPropertySetNode;
0 6 1 thisObj Ljava/lang/Object;
0 6 2 value Ljava/lang/Object;
0 6 3 receiver Ljava/lang/Object;
0 6 4 root Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
0 6 5 guard Z
1 6 6 store Lcom/oracle/truffle/api/object/DynamicObject;
2 6 7 ret Z
MethodParameters:
Name Flags
thisObj
value
receiver
root
guard
protected boolean setValueInt(java.lang.Object, int, java.lang.Object, com.oracle.truffle.js.nodes.access.PropertySetNode, boolean);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/PropertySetNode;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.receiverCheck:Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ReceiverCheckNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyCacheNode$ReceiverCheckNode.getStore:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 6
start local 6 1: getstatic com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.$assertionsDisabled:Z
ifne 2
aload 6
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSFastArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
iload 2
ifge 5
3: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.errorBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
4: invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode.arrayLengthWrite:Lcom/oracle/truffle/js/nodes/array/ArrayLengthNode$ArrayLengthWriteNode;
aload 6
iload 2
invokevirtual com.oracle.truffle.js.nodes.array.ArrayLengthNode$ArrayLengthWriteNode.executeVoid:(Lcom/oracle/truffle/api/object/DynamicObject;I)V
6: iconst_1
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/nodes/access/PropertySetNode$ArrayLengthPropertySetNode;
0 7 1 thisObj Ljava/lang/Object;
0 7 2 value I
0 7 3 receiver Ljava/lang/Object;
0 7 4 root Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
0 7 5 guard Z
1 7 6 store Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
thisObj
value
receiver
root
guard
}
SourceFile: "PropertySetNode.java"
NestHost: com.oracle.truffle.js.nodes.access.PropertySetNode
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
protected abstract AbstractShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractShapeCheckNode 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
public final ArrayLengthPropertySetNode = com.oracle.truffle.js.nodes.access.PropertySetNode$ArrayLengthPropertySetNode of com.oracle.truffle.js.nodes.access.PropertySetNode
public abstract LinkedPropertySetNode = com.oracle.truffle.js.nodes.access.PropertySetNode$LinkedPropertySetNode of com.oracle.truffle.js.nodes.access.PropertySetNode
public abstract ArrayLengthWriteNode = com.oracle.truffle.js.nodes.array.ArrayLengthNode$ArrayLengthWriteNode of com.oracle.truffle.js.nodes.array.ArrayLengthNode