public abstract class com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode extends com.oracle.truffle.js.builtins.JSONBuiltins$JSONOperation
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode
super_class: com.oracle.truffle.js.builtins.JSONBuiltins$JSONOperation
{
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.JSONBuiltins$JSONOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONParseNode;
0 2 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 2 2 builtin Lcom/oracle/truffle/js/nodes/function/JSBuiltin;
MethodParameters:
Name Flags
context
builtin
protected java.lang.Object parse(java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.unary.IsCallableNode);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.parseIntl:(Ljava/lang/String;)Ljava/lang/Object;
astore 4
start local 4 1: aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.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;
astore 5
start local 5 2: aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
aload 5
ldc ""
aload 4
invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.getDefault:()I
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
3: aload 0
aload 2
checkcast com.oracle.truffle.api.object.DynamicObject
aload 5
ldc ""
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.walk:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
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 4 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONParseNode;
0 4 1 text Ljava/lang/Object;
0 4 2 reviver Ljava/lang/Object;
0 4 3 isCallable Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
1 4 4 unfiltered Ljava/lang/Object;
2 4 5 root Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isCallable.executeBoolean(reviver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "isCallable")
MethodParameters:
Name Flags
text
reviver
isCallable
protected java.lang.Object parseUnfiltered(java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.unary.IsCallableNode);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.parseIntl:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONParseNode;
0 1 1 text Ljava/lang/Object;
0 1 2 reviver Ljava/lang/Object;
0 1 3 isCallable Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isCallable.executeBoolean(reviver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached()
com.oracle.truffle.api.dsl.Cached$Shared(value = "isCallable")
MethodParameters:
Name Flags
text
reviver
isCallable
private java.lang.Object parseIntl(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.js.builtins.helper.TruffleJSONParser
dup
aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokespecial com.oracle.truffle.js.builtins.helper.TruffleJSONParser.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
aload 1
invokevirtual com.oracle.truffle.js.builtins.helper.TruffleJSONParser.parse:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONParseNode;
0 1 1 jsonString Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary(transferToInterpreterOnException = false)
MethodParameters:
Name Flags
jsonString
private java.lang.Object walk(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
aload 3
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 1: aload 4
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
ifeq 24
2: aload 4
checkcast com.oracle.truffle.api.object.DynamicObject
astore 5
start local 5 3: aload 0
aload 5
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.isArray:(Ljava/lang/Object;)Z
ifeq 16
4: aload 5
ldc "length"
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toLength:(Ljava/lang/Object;)J
l2i
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 14
7: StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object com.oracle.truffle.api.object.DynamicObject int int
StackMap stack:
iload 7
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
astore 8
start local 8 8: aload 0
aload 1
aload 5
aload 8
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.walk:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
astore 9
start local 9 9: aload 9
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 12
10: aload 5
iload 7
i2l
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
pop
11: goto 13
12: StackMap locals: java.lang.String java.lang.Object
StackMap stack:
aload 5
aload 8
aload 9
invokestatic com.oracle.truffle.js.runtime.JSRuntime.createDataProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 9 end local 8 13: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iload 6
if_icmplt 7
end local 7 end local 6 15: goto 24
16: StackMap locals:
StackMap stack:
aload 5
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.enumerableOwnNames:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 23
StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object com.oracle.truffle.api.object.DynamicObject top java.util.Iterator
StackMap stack:
17: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 18: aload 0
aload 1
aload 5
aload 6
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode.walk:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;)Ljava/lang/Object;
astore 8
start local 8 19: aload 8
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 22
20: aload 5
aload 6
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
pop
21: goto 23
22: StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object com.oracle.truffle.api.object.DynamicObject java.lang.String java.util.Iterator java.lang.Object
StackMap stack:
aload 5
aload 6
aload 8
invokestatic com.oracle.truffle.js.runtime.JSRuntime.createDataProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 8 end local 6 23: StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object com.oracle.truffle.api.object.DynamicObject top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
end local 5 24: StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject java.lang.String java.lang.Object
StackMap stack:
aload 1
aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
aastore
invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONParseNode;
0 25 1 reviverFn Lcom/oracle/truffle/api/object/DynamicObject;
0 25 2 holder Lcom/oracle/truffle/api/object/DynamicObject;
0 25 3 property Ljava/lang/String;
1 25 4 value Ljava/lang/Object;
3 24 5 object Lcom/oracle/truffle/api/object/DynamicObject;
5 15 6 len I
6 15 7 i I
8 13 8 stringIndex Ljava/lang/String;
9 13 9 newElement Ljava/lang/Object;
18 23 6 p Ljava/lang/String;
19 23 8 newElement Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
reviverFn
holder
property
}
SourceFile: "JSONBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.JSONBuiltins
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
public abstract JSONOperation = com.oracle.truffle.js.builtins.JSONBuiltins$JSONOperation of com.oracle.truffle.js.builtins.JSONBuiltins
public abstract JSONParseNode = com.oracle.truffle.js.builtins.JSONBuiltins$JSONParseNode of com.oracle.truffle.js.builtins.JSONBuiltins