public abstract class com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode 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$ObjectKeysNode
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 com.oracle.truffle.api.interop.InteropLibrary asString;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.api.profiles.ConditionProfile hasElements;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
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/builtins/ObjectFunctionBuiltins;
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.ObjectFunctionBuiltins$ObjectKeysNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
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.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.hasElements:Lcom/oracle/truffle/api/profiles/ConditionProfile;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectKeysNode;
0 3 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 3 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
MethodParameters:
Name Flags
context
builtin
protected com.oracle.truffle.api.object.DynamicObject keysDynamicObject(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.enumerableOwnPropertyNames:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList;
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.size:()I
istore 3
start local 3 2: aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.hasElements:Lcom/oracle/truffle/api/profiles/ConditionProfile;
iload 3
ifle 3
iconst_1
goto 4
StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.UnmodifiableArrayList int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
3: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.util.UnmodifiableArrayList int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
4: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 7
5: getstatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.$assertionsDisabled:Z
ifne 6
aload 2
invokevirtual com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.stream:()Ljava/util/stream/Stream;
ldc Ljava/lang/String;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Ljava/lang/Object;)Z
invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 2
invokevirtual com.oracle.truffle.js.runtime.util.UnmodifiableArrayList.toArray:()[Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstant:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
lconst_0
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createEmptyChecked:(Lcom/oracle/truffle/js/runtime/JSContext;J)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
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/builtins/ObjectFunctionBuiltins$ObjectKeysNode;
0 8 1 thisObj Lcom/oracle/truffle/api/object/DynamicObject;
1 8 2 keyList Lcom/oracle/truffle/js/runtime/util/UnmodifiableArrayList<+Ljava/lang/Object;>;
2 8 3 len I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isJSDynamicObject(thisObj)"})
MethodParameters:
Name Flags
thisObj
protected com.oracle.truffle.api.object.DynamicObject keysSymbol(com.oracle.truffle.js.runtime.Symbol);
descriptor: (Lcom/oracle/truffle/js/runtime/Symbol;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.keysDynamicObject:(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/ObjectFunctionBuiltins$ObjectKeysNode;
0 1 1 symbol Lcom/oracle/truffle/js/runtime/Symbol;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
symbol
protected com.oracle.truffle.api.object.DynamicObject keysString(com.oracle.truffle.js.runtime.objects.JSLazyString);
descriptor: (Lcom/oracle/truffle/js/runtime/objects/JSLazyString;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.keysDynamicObject:(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/ObjectFunctionBuiltins$ObjectKeysNode;
0 1 1 string Lcom/oracle/truffle/js/runtime/objects/JSLazyString;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
string
protected com.oracle.truffle.api.object.DynamicObject keysSafeInt(com.oracle.truffle.js.runtime.SafeInteger);
descriptor: (Lcom/oracle/truffle/js/runtime/SafeInteger;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.keysDynamicObject:(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/ObjectFunctionBuiltins$ObjectKeysNode;
0 1 1 largeInteger Lcom/oracle/truffle/js/runtime/SafeInteger;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
largeInteger
protected com.oracle.truffle.api.object.DynamicObject keysBigInt(com.oracle.truffle.js.runtime.BigInt);
descriptor: (Lcom/oracle/truffle/js/runtime/BigInt;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.keysDynamicObject:(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/ObjectFunctionBuiltins$ObjectKeysNode;
0 1 1 bigInt Lcom/oracle/truffle/js/runtime/BigInt;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization()
MethodParameters:
Name Flags
bigInt
protected com.oracle.truffle.api.object.DynamicObject keysOther(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.toOrAsJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.keysDynamicObject:(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/ObjectFunctionBuiltins$ObjectKeysNode;
0 1 1 thisObj Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isTruffleObject(thisObj)"})
MethodParameters:
Name Flags
thisObj
protected com.oracle.truffle.api.object.DynamicObject keysForeign(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 18
1: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 2: aload 3
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
lstore 7
start local 7 3: lload 7
lconst_0
lcmp
iflt 4
lload 7
ldc 2147483647
lcmp
iflt 6
4: StackMap locals: java.lang.Object long
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
5: invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
athrow
6: StackMap locals:
StackMap stack:
lload 7
lconst_0
lcmp
ifle 18
7: lload 7
invokestatic com.oracle.truffle.js.runtime.util.SimpleArrayList.create:(J)Lcom/oracle/truffle/js/runtime/util/SimpleArrayList;
astore 9
start local 9 8: iconst_0
istore 10
start local 10 9: goto 14
10: StackMap locals: com.oracle.truffle.js.runtime.util.SimpleArrayList int
StackMap stack:
aload 3
aload 6
iload 10
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 11
start local 11 11: getstatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.$assertionsDisabled:Z
ifne 12
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.isString:(Ljava/lang/Object;)Z
ifne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: java.lang.Object
StackMap stack:
aload 9
aload 0
aload 11
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.asStringKey:(Ljava/lang/Object;)Ljava/lang/String;
aload 4
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
end local 11 13: iinc 10 1
StackMap locals:
StackMap stack:
14: iload 10
i2l
lload 7
lcmp
iflt 10
end local 10 15: aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 9
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.toArray:()[Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createConstant:(Lcom/oracle/truffle/js/runtime/JSContext;[Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
16: areturn
end local 9 end local 7 end local 6 17: StackMap locals: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.api.profiles.BranchProfile
StackMap stack: com.oracle.truffle.api.interop.InteropException
pop
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.createEmptyZeroLength:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
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 19 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectKeysNode;
0 19 1 obj Ljava/lang/Object;
0 19 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 19 3 members Lcom/oracle/truffle/api/interop/InteropLibrary;
0 19 4 growProfile Lcom/oracle/truffle/api/profiles/BranchProfile;
0 19 5 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
2 17 6 keysObj Ljava/lang/Object;
3 17 7 size J
8 17 9 keys Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Ljava/lang/String;>;
9 15 10 i I
11 13 11 key Ljava/lang/Object;
Exception table:
from to target type
1 16 17 Class com.oracle.truffle.api.interop.UnsupportedMessageException
1 16 17 Class com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isForeignObject(obj)"}, limit = "InteropLibraryLimit")
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.library.CachedLibrary(value = "obj")
2:
com.oracle.truffle.api.library.CachedLibrary(limit = "InteropLibraryLimit")
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
obj
interop
members
growProfile
errorBranch
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$ObjectKeysNode.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$ObjectKeysNode.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$ObjectKeysNode.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$ObjectKeysNode.enumerableOwnPropertyNamesNode:Lcom/oracle/truffle/js/nodes/access/EnumerableOwnPropertyNamesNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.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$ObjectKeysNode;
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 java.lang.String asStringKey(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.$assertionsDisabled:Z
ifne 1
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 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.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 3
2: aload 1
checkcast java.lang.String
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.asString:Lcom/oracle/truffle/api/interop/InteropLibrary;
ifnonnull 6
4: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
5: aload 0
aload 0
invokestatic com.oracle.truffle.api.interop.InteropLibrary.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.interop.InteropLibrary
invokevirtual com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.asString:Lcom/oracle/truffle/api/interop/InteropLibrary;
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode.asString:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/builtins/ObjectFunctionBuiltins$ObjectKeysNode;
0 7 1 key Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
key
}
SourceFile: "ObjectFunctionBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract ObjectKeysNode = com.oracle.truffle.js.builtins.ObjectFunctionBuiltins$ObjectKeysNode of com.oracle.truffle.js.builtins.ObjectFunctionBuiltins
public abstract ObjectOperation = com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins$ObjectOperation of com.oracle.truffle.js.builtins.ObjectPrototypeBuiltins
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})