public abstract class com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode extends com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructWithNewTargetNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode
super_class: com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructWithNewTargetNode
{
public void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin, boolean);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokespecial com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructWithNewTargetNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;Z)V
1: return
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/ConstructorBuiltins$ConstructObjectNode;
0 2 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 2 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
0 2 3 isNewTargetCase Z
MethodParameters:
Name Flags
context
builtin
isNewTargetCase
protected static boolean arg0NullOrUndefined(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
aaload
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 2
aload 1
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 2
iconst_0
ireturn
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 args [Ljava/lang/Object;
1 3 1 arg0 Ljava/lang/Object;
MethodParameters:
Name Flags
args
protected static java.lang.Object firstArgument(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
arraylength
ifne 1
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iconst_0
aaload
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arguments [Ljava/lang/Object;
MethodParameters:
Name Flags
arguments
protected com.oracle.truffle.api.object.DynamicObject constructObjectNewTarget(com.oracle.truffle.api.object.DynamicObject, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.newObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 1 1 newTarget Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 arguments [Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isNewTargetCase"})
MethodParameters:
Name Flags
newTarget
arguments
protected com.oracle.truffle.api.object.DynamicObject constructObject0(com.oracle.truffle.api.object.DynamicObject, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.newObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 1 1 newTarget Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 arguments [Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"arguments.length == 0"})
MethodParameters:
Name Flags
newTarget
arguments
protected java.lang.Object constructObjectJSObject(com.oracle.truffle.api.object.DynamicObject, java.lang.Object[], com.oracle.truffle.js.nodes.cast.JSToObjectNode, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.profiles.ConditionProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Ljava/lang/Object;
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 2
iconst_0
aaload
astore 6
start local 6 1: aload 5
aload 4
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 3
2: aload 0
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.newObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 6
invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
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 4 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 4 1 newTarget Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 arguments [Ljava/lang/Object;
0 4 3 toObjectNode Lcom/oracle/truffle/js/nodes/cast/JSToObjectNode;
0 4 4 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 4 5 isNull Lcom/oracle/truffle/api/profiles/ConditionProfile;
1 4 6 arg0 Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isNewTargetCase", "arguments.length > 0", "!arg0NullOrUndefined(arguments)"}, limit = "InteropLibraryLimit")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached(value = "createToObject(getContext())")
3:
com.oracle.truffle.api.library.CachedLibrary(value = "firstArgument(arguments)")
4:
com.oracle.truffle.api.dsl.Cached(value = "createBinaryProfile()")
MethodParameters:
Name Flags
newTarget
arguments
toObjectNode
interop
isNull
protected com.oracle.truffle.api.object.DynamicObject constructObjectNullOrUndefined(com.oracle.truffle.api.object.DynamicObject, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.newObject:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 1 1 newTarget Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 arguments [Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"arguments.length > 0", "arg0NullOrUndefined(arguments)"})
MethodParameters:
Name Flags
newTarget
arguments
private com.oracle.truffle.api.object.DynamicObject newObject(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.runtime.builtins.JSOrdinary.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
aload 1
invokevirtual com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode.swapPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 1 1 newTarget Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
newTarget
protected com.oracle.truffle.api.object.DynamicObject getIntrinsicDefaultProto(com.oracle.truffle.js.runtime.JSRealm);
descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getObjectPrototype:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ConstructorBuiltins$ConstructObjectNode;
0 1 1 realm Lcom/oracle/truffle/js/runtime/JSRealm;
MethodParameters:
Name Flags
realm
}
SourceFile: "ConstructorBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ConstructorBuiltins
InnerClasses:
public abstract ConstructObjectNode = com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructObjectNode of com.oracle.truffle.js.builtins.ConstructorBuiltins
public abstract ConstructWithNewTargetNode = com.oracle.truffle.js.builtins.ConstructorBuiltins$ConstructWithNewTargetNode of com.oracle.truffle.js.builtins.ConstructorBuiltins
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})