public abstract class com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode extends com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode
super_class: com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation
{
private com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode enumerableOwnPropertyNamesNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.js.runtime.util.JSClassProfile sourceProfile;
descriptor: Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.js.runtime.util.JSClassProfile targetProfile;
descriptor: Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: aload 0
invokestatic com.oracle.truffle.js.runtime.util.JSClassProfile.create:()Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.sourceProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
2: aload 0
invokestatic com.oracle.truffle.js.runtime.util.JSClassProfile.create:()Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 4 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 4 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
MethodParameters:
Name Flags
context
builtin
protected com.oracle.truffle.api.object.DynamicObject bindPropertiesInvalidTarget(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;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 1
aload 0
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotAnObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Ljava/lang/Object;
0 1 2 source Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isJSObject(target)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindPropertiesDynamicObject(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 3
start local 3 1: aload 1
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
istore 4
start local 4 2: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.sourceProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
aload 3
invokevirtual com.oracle.truffle.js.runtime.util.JSClassProfile.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
astore 5
start local 5 3: aload 0
aload 3
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.enumerableOwnPropertyNames:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
astore 6
start local 6 4: aload 6
invokevirtual com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.size:()I
istore 7
start local 7 5: iconst_0
istore 8
start local 8 6: goto 17
7: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject int com.oracle.truffle.js.runtime.builtins.JSClass com.oracle.truffle.js.runtime.util.UnmodifiableArrayList int int
StackMap stack:
aload 6
iload 8
invokevirtual com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.get:(I)Ljava/lang/Object;
astore 9
start local 9 8: aload 1
aload 9
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
ifne 16
9: iload 4
ifne 11
10: aload 1
aload 9
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
11: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 9
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.sourceProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 10
start local 10 12: aload 10
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
ifeq 15
13: aload 1
aload 9
aload 10
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)Z
pop
14: goto 16
15: StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
StackMap stack:
aload 1
aload 9
new com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$BoundProperty
dup
aload 2
aload 9
aload 5
invokespecial com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$BoundProperty.<init>:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)V
aload 10
invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getFlags:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineProxyProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;I)V
end local 10 end local 9 16: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 7
if_icmplt 7
end local 8 18: aload 1
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 19 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 19 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 19 2 source Lcom/oracle/truffle/api/object/DynamicObject;
1 19 3 sourceObject Lcom/oracle/truffle/api/object/DynamicObject;
2 19 4 extensible Z
3 19 5 sourceClass Lcom/oracle/truffle/js/runtime/builtins/JSClass;
4 19 6 keys Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList<+Ljava/lang/Object;>;
5 19 7 length I
6 18 8 i I
8 16 9 key Ljava/lang/Object;
12 16 10 desc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)", "isJSDynamicObject(source)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.Symbol);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/Symbol;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.bindPropertiesDynamicObject:(Lcom/oracle/truffle/api/object/DynamicObject;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/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 source Lcom/oracle/truffle/js/runtime/Symbol;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.objects.JSLazyString);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/JSLazyString;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.bindPropertiesDynamicObject:(Lcom/oracle/truffle/api/object/DynamicObject;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/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 source Lcom/oracle/truffle/js/runtime/objects/JSLazyString;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.SafeInteger);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/SafeInteger;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.bindPropertiesDynamicObject:(Lcom/oracle/truffle/api/object/DynamicObject;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/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 source Lcom/oracle/truffle/js/runtime/SafeInteger;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.BigInt);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/BigInt;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.bindPropertiesDynamicObject:(Lcom/oracle/truffle/api/object/DynamicObject;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/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 source Lcom/oracle/truffle/js/runtime/BigInt;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(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=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.toJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.bindPropertiesDynamicObject:(Lcom/oracle/truffle/api/object/DynamicObject;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/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 1 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 1 2 source Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)", "!isTruffleObject(source)"})
MethodParameters:
Name Flags
target
source
protected com.oracle.truffle.api.object.DynamicObject bindProperties(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/interop/InteropLibrary;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=18, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 44
1: aload 1
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
istore 5
start local 5 2: aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
istore 6
start local 6 3: aload 3
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 4: aload 4
aload 7
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
lstore 8
start local 8 5: iconst_0
istore 10
start local 10 6: goto 40
7: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary int int java.lang.Object long int
StackMap stack:
aload 4
aload 7
iload 10
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 11
start local 11 8: aload 11
instanceof java.lang.String
ifeq 11
9: aload 11
checkcast java.lang.String
astore 12
start local 12 10: goto 12
end local 12 11: StackMap locals: java.lang.Object
StackMap stack:
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
aload 11
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 12
start local 12 12: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 11
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
ifne 16
13: iload 5
ifne 15
14: aload 1
aload 11
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
15: StackMap locals:
StackMap stack:
aload 1
aload 11
new com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundProperty
dup
aload 2
aload 12
invokespecial com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundProperty.<init>:(Ljava/lang/Object;Ljava/lang/String;)V
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefault:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineProxyProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;I)V
16: StackMap locals:
StackMap stack:
iload 6
ifeq 39
17: aload 12
invokevirtual java.lang.String.length:()I
iconst_3
if_icmple 22
aload 12
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 115
if_icmpeq 18
aload 12
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 103
if_icmpne 22
StackMap locals:
StackMap stack:
18: aload 12
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 101
if_icmpne 22
aload 12
iconst_2
invokevirtual java.lang.String.charAt:(I)C
bipush 116
if_icmpne 22
19: aload 12
iconst_3
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.oracle.truffle.js.runtime.Boundaries.characterIsUpperCase:(C)Z
ifeq 22
20: aload 12
iconst_3
invokestatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.beanProperty:(Ljava/lang/String;I)Ljava/lang/String;
astore 13
start local 13 21: goto 24
end local 13 StackMap locals:
StackMap stack:
22: aload 12
invokevirtual java.lang.String.length:()I
iconst_2
if_icmple 39
aload 12
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 105
if_icmpne 39
aload 12
iconst_1
invokevirtual java.lang.String.charAt:(I)C
bipush 115
if_icmpne 39
aload 12
iconst_2
invokevirtual java.lang.String.charAt:(I)C
invokestatic com.oracle.truffle.js.runtime.Boundaries.characterIsUpperCase:(C)Z
ifeq 39
23: aload 12
iconst_2
invokestatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.beanProperty:(Ljava/lang/String;I)Ljava/lang/String;
astore 13
start local 13 24: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 13
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.targetProfile:Lcom/oracle/truffle/js/runtime/util/JSClassProfile;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/JSClassProfile;)Z
ifne 39
aload 3
aload 2
aload 13
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ifne 39
25: ldc "get"
aload 13
invokestatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.beanAccessor:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 14
start local 14 26: aload 3
aload 2
aload 14
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 29
27: aload 14
astore 15
start local 15 28: goto 34
end local 15 29: StackMap locals: java.lang.String
StackMap stack:
ldc "is"
aload 13
invokestatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.beanAccessor:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 16
start local 16 30: aload 3
aload 2
aload 16
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 33
31: aload 16
astore 15
start local 15 32: goto 34
end local 15 33: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary int int java.lang.Object long int java.lang.Object java.lang.String java.lang.String java.lang.String top java.lang.String
StackMap stack:
aconst_null
astore 15
end local 16 start local 15 34: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary int int java.lang.Object long int java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack:
ldc "set"
aload 13
invokestatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.beanAccessor:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 16
start local 16 35: aload 3
aload 2
aload 16
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ifeq 36
aload 16
goto 37
StackMap locals: java.lang.String
StackMap stack:
36: aconst_null
StackMap locals:
StackMap stack: java.lang.String
37: astore 17
start local 17 38: aload 1
aload 13
new com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundBeanProperty
dup
aload 2
aload 15
aload 17
invokespecial com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundBeanProperty.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefault:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineProxyProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyProxy;I)V
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 39: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary int int java.lang.Object long int
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
40: iload 10
i2l
lload 8
lcmp
iflt 7
end local 10 end local 8 end local 7 end local 6 end local 5 41: goto 45
StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary
StackMap stack: com.oracle.truffle.api.interop.InteropException
42: pop
43: goto 45
44: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotAnObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
athrow
45: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 46 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 46 2 source Ljava/lang/Object;
0 46 3 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 46 4 members Lcom/oracle/truffle/api/interop/InteropLibrary;
2 41 5 extensible Z
3 41 6 hostObject Z
4 41 7 keysObj Ljava/lang/Object;
5 41 8 size J
6 41 10 i I
8 39 11 key Ljava/lang/Object;
10 11 12 stringKey Ljava/lang/String;
12 39 12 stringKey Ljava/lang/String;
21 22 13 beanProperty Ljava/lang/String;
24 39 13 beanProperty Ljava/lang/String;
26 39 14 getKey Ljava/lang/String;
28 29 15 getter Ljava/lang/String;
32 33 15 getter Ljava/lang/String;
34 39 15 getter Ljava/lang/String;
30 34 16 isKey Ljava/lang/String;
35 39 16 setKey Ljava/lang/String;
38 39 17 setter Ljava/lang/String;
Exception table:
from to target type
1 41 42 Class com.oracle.truffle.api.interop.UnsupportedMessageException
1 41 42 Class com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(target)", "isForeignObject(source)"}, limit = "InteropLibraryLimit")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.library.CachedLibrary(value = "source")
3:
com.oracle.truffle.api.library.CachedLibrary(limit = "InteropLibraryLimit")
MethodParameters:
Name Flags
target
source
interop
members
private com.oracle.truffle.js.runtime.util.UnmodifiableArrayList<? extends java.lang.Object> enumerableOwnPropertyNames(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.enumerableOwnPropertyNamesNode:Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.createKeys:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.enumerableOwnPropertyNamesNode:Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode.enumerableOwnPropertyNamesNode:Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.EnumerableOwnPropertyNamesNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectBindPropertiesNode;
0 4 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList<+Ljava/lang/Object;>;
MethodParameters:
Name Flags
obj
private static java.lang.String beanProperty(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 1: new java.lang.StringBuilder
dup
iload 2
invokestatic java.lang.Character.toLowerCase:(C)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
iload 1
iconst_1
iadd
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
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 accessor Ljava/lang/String;
0 2 1 prefixLength I
1 2 2 c C
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
accessor
prefixLength
private static java.lang.String beanAccessor(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: 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 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.toUpperCase:(C)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
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
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 prefix Ljava/lang/String;
0 1 1 beanProperty Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
prefix
beanProperty
}
SourceFile: "ObjectFunctionBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract ObjectBindPropertiesNode = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
BoundProperty = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$BoundProperty of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode
ForeignBoundBeanProperty = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundBeanProperty of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode
ForeignBoundProperty = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode$ForeignBoundProperty of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectBindPropertiesNode
public abstract ObjectOperation = com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation of com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})