public abstract class com.oracle.truffle.js.builtins.helper.IsPristineObjectNode extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.helper.IsPristineObjectNode
super_class: com.oracle.truffle.api.nodes.Node
{
private final com.oracle.truffle.js.runtime.builtins.JSClass jsClass;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSClass;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.object.Shape initialPrototypeShape;
descriptor: Lcom/oracle/truffle/api/object/Shape;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object[] propertyKeys;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private final com.oracle.truffle.api.Assumption[] propertyFinalAssumptions;
descriptor: [Lcom/oracle/truffle/api/Assumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototypeNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
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/builtins/helper/IsPristineObjectNode;
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.builtins.helper.IsPristineObjectNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.runtime.builtins.JSClass, com.oracle.truffle.api.object.Shape, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/Shape;[Ljava/lang/Object;)V
flags: (0x0080) ACC_VARARGS
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.js.nodes.access.GetPrototypeNode.create:()Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
putfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
2: getstatic com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.$assertionsDisabled:Z
ifne 3
aload 1
getstatic com.oracle.truffle.js.runtime.builtins.JSProxy.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSProxy;
if_acmpne 3
new java.lang.AssertionError
dup
ldc "not supported because getting the prototype of proxy objects can have side effects"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: com.oracle.truffle.js.builtins.helper.IsPristineObjectNode com.oracle.truffle.js.runtime.builtins.JSClass com.oracle.truffle.api.object.Shape java.lang.Object[]
StackMap stack:
aload 0
aload 1
putfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.jsClass:Lcom/oracle/truffle/js/runtime/builtins/JSClass;
4: aload 0
aload 2
putfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.initialPrototypeShape:Lcom/oracle/truffle/api/object/Shape;
5: aload 0
aload 3
putfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.propertyKeys:[Ljava/lang/Object;
6: aload 0
aload 3
arraylength
anewarray com.oracle.truffle.api.Assumption
putfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.propertyFinalAssumptions:[Lcom/oracle/truffle/api/Assumption;
7: iconst_0
istore 4
start local 4 8: goto 11
9: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.propertyFinalAssumptions:[Lcom/oracle/truffle/api/Assumption;
iload 4
aload 2
aload 3
iload 4
aaload
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.getFinalAssumption:()Lcom/oracle/truffle/api/Assumption;
aastore
10: iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 3
arraylength
if_icmplt 9
end local 4 12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 13 1 jsClass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
0 13 2 initialPrototypeShape Lcom/oracle/truffle/api/object/Shape;
0 13 3 propertyKeys [Ljava/lang/Object;
8 12 4 i I
MethodParameters:
Name Flags
jsClass
initialPrototypeShape
propertyKeys
public static com.oracle.truffle.js.builtins.helper.IsPristineObjectNode create(com.oracle.truffle.js.runtime.builtins.JSClass, com.oracle.truffle.api.object.Shape, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/Shape;[Ljava/lang/Object;)Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tIsPristineObjectNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
jsClass
initialPrototypeShape
propertyKeys
public static com.oracle.truffle.js.builtins.helper.IsPristineObjectNode createRegExpExecAndMatch(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEcmaScriptVersion:()I
bipush 6
if_icmpge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.builtins.JSRegExp.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSRegExp;
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getInitialRegExpPrototypeShape:()Lcom/oracle/truffle/api/object/Shape;
bipush 6
anewarray java.lang.Object
dup
iconst_0
2: getstatic com.oracle.truffle.js.runtime.Symbol.SYMBOL_MATCH:Lcom/oracle/truffle/js/runtime/Symbol;
aastore
dup
iconst_1
3: getstatic com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototype.exec:Lcom/oracle/truffle/js/builtins/RegExpPrototypeBuiltins$RegExpPrototype;
invokevirtual com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototype.getKey:()Ljava/lang/Object;
aastore
dup
iconst_2
4: ldc "flags"
aastore
dup
iconst_3
5: ldc "global"
aastore
dup
iconst_4
6: ldc "unicode"
aastore
dup
iconst_5
7: ldc "sticky"
aastore
8: invokestatic com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.create:(Lcom/oracle/truffle/js/runtime/builtins/JSClass;Lcom/oracle/truffle/api/object/Shape;[Ljava/lang/Object;)Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public abstract boolean execute(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
object
boolean doCached(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Z)Z
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 1
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.prototypeShapeUnchanged:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 2 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 2 2 cachedShape Lcom/oracle/truffle/api/object/Shape;
0 2 3 isInstanceAndDoesNotOverwriteProps Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"cachedShape.check(object)"}, assumptions = {"getPropertyFinalAssumptions()"})
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached(value = "object.getShape()")
2:
com.oracle.truffle.api.dsl.Cached(value = "isInstanceAndDoesNotOverwriteProps(cachedShape)")
MethodParameters:
Name Flags
object
cachedShape
isInstanceAndDoesNotOverwriteProps
boolean doDynamic(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.isInstanceAndDoesNotOverwriteProps:(Lcom/oracle/truffle/api/object/Shape;)Z
ifeq 1
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.prototypeShapeUnchanged:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 2 1 object Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(assumptions = {"getPropertyFinalAssumptions()"}, replaces = {"doCached"})
MethodParameters:
Name Flags
object
boolean doAssumptionsInvalid(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 1 1 object Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
object
com.oracle.truffle.api.Assumption[] getPropertyFinalAssumptions();
descriptor: ()[Lcom/oracle/truffle/api/Assumption;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.propertyFinalAssumptions:[Lcom/oracle/truffle/api/Assumption;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
private boolean prototypeShapeUnchanged(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.GetPrototypeNode.executeJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.initialPrototypeShape:Lcom/oracle/truffle/api/object/Shape;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 2 1 object Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
object
boolean isInstanceAndDoesNotOverwriteProps(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Z
flags: (0x0000)
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getDynamicType:()Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.jsClass:Lcom/oracle/truffle/js/runtime/builtins/JSClass;
if_acmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.helper.IsPristineObjectNode.propertyKeys:[Ljava/lang/Object;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: com.oracle.truffle.js.builtins.helper.IsPristineObjectNode com.oracle.truffle.api.object.Shape top int int java.lang.Object[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 1
aload 2
invokevirtual com.oracle.truffle.api.object.Shape.hasProperty:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_0
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 3
8: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/builtins/helper/IsPristineObjectNode;
0 9 1 objectShape Lcom/oracle/truffle/api/object/Shape;
4 6 2 key Ljava/lang/Object;
MethodParameters:
Name Flags
objectShape
}
SourceFile: "IsPristineObjectNode.java"
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public final RegExpPrototype = com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins$RegExpPrototype of com.oracle.truffle.js.builtins.RegExpPrototypeBuiltins