public abstract class com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode 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$JSONStringifyNode
super_class: com.oracle.truffle.js.builtins.JSONBuiltins$JSONOperation
{
private com.oracle.truffle.js.builtins.helper.JSONStringifyStringNode jsonStringifyStringNode;
descriptor: Lcom/oracle/truffle/js/builtins/helper/JSONStringifyStringNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.CreateDataPropertyNode createWrapperPropertyNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/CreateDataPropertyNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode toIntegerNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.cast.JSToNumberNode toNumberNode;
descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.unary.JSIsArrayNode isArrayNode;
descriptor: Lcom/oracle/truffle/js/nodes/unary/JSIsArrayNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.unary.IsCallableNode isCallableNode;
descriptor: Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.api.profiles.BranchProfile spaceIsStringBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile spaceIsUndefinedProfile;
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/JSONBuiltins;
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.JSONBuiltins$JSONStringifyNode.$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.JSONBuiltins$JSONOperation.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.spaceIsStringBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.spaceIsUndefinedProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
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/JSONBuiltins$JSONStringifyNode;
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 java.lang.Object jsonStr(java.lang.Object, java.lang.String, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.jsonStringifyStringNode:Lcom/oracle/truffle/js/builtins/helper/JSONStringifyStringNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.builtins.helper.JSONStringifyStringNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/builtins/helper/JSONStringifyStringNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.builtins.helper.JSONStringifyStringNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.jsonStringifyStringNode:Lcom/oracle/truffle/js/builtins/helper/JSONStringifyStringNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.jsonStringifyStringNode:Lcom/oracle/truffle/js/builtins/helper/JSONStringifyStringNode;
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.js.builtins.helper.JSONStringifyStringNode.execute:(Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
areturn
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$JSONStringifyNode;
0 4 1 jsonData Ljava/lang/Object;
0 4 2 key Ljava/lang/String;
0 4 3 holder Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
jsonData
key
holder
protected boolean isArray(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isArrayNode:Lcom/oracle/truffle/js/nodes/unary/JSIsArrayNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.unary.JSIsArrayNode.createIsArrayLike:()Lcom/oracle/truffle/js/nodes/unary/JSIsArrayNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.unary.JSIsArrayNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isArrayNode:Lcom/oracle/truffle/js/nodes/unary/JSIsArrayNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isArrayNode:Lcom/oracle/truffle/js/nodes/unary/JSIsArrayNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.unary.JSIsArrayNode.execute:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 4 1 replacer Ljava/lang/Object;
MethodParameters:
Name Flags
replacer
protected boolean isCallable(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.unary.IsCallableNode.create:()Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.unary.IsCallableNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.isCallableNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.unary.IsCallableNode.executeBoolean:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
protected java.lang.Object stringify(java.lang.Object, com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isCallable:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
aload 2
aconst_null
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.stringifyIntl:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List;)Ljava/lang/Object;
areturn
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/JSONBuiltins$JSONStringifyNode;
0 2 1 value Ljava/lang/Object;
0 2 2 replacerFn Lcom/oracle/truffle/api/object/DynamicObject;
0 2 3 spaceParam Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isCallable(replacerFn)"})
MethodParameters:
Name Flags
value
replacerFn
spaceParam
protected java.lang.Object stringifyReplacerArray(java.lang.Object, com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
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 4
start local 4 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: goto 14
4: StackMap locals: int java.util.List int
StackMap stack:
aload 2
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 5: aconst_null
astore 8
start local 8 6: aload 7
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
ifeq 9
7: aload 7
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toStringIsString:(Ljava/lang/Object;)Ljava/lang/String;
astore 8
8: goto 11
StackMap locals: java.lang.Object java.lang.String
StackMap stack:
9: aload 7
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isNumber:(Ljava/lang/Object;)Z
ifne 10
aload 7
invokestatic com.oracle.truffle.js.runtime.builtins.JSNumber.isJSNumber:(Ljava/lang/Object;)Z
ifne 10
aload 7
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
aload 7
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toString:(Ljava/lang/Object;)Ljava/lang/String;
astore 8
11: StackMap locals:
StackMap stack:
aload 8
ifnull 13
12: aload 5
aload 8
invokestatic com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.addToReplacer:(Ljava/util/List;Ljava/lang/String;)V
end local 8 end local 7 13: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 4
if_icmplt 4
end local 6 15: aload 0
aload 1
aload 3
aconst_null
aload 5
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.stringifyIntl:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List;)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 16 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 16 1 value Ljava/lang/Object;
0 16 2 replacerObj Lcom/oracle/truffle/api/object/DynamicObject;
0 16 3 spaceParam Ljava/lang/Object;
1 16 4 len I
2 16 5 replacerList Ljava/util/List<Ljava/lang/String;>;
3 15 6 i I
5 13 7 v Ljava/lang/Object;
6 13 8 item Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray(replacerObj)"})
MethodParameters:
Name Flags
value
replacerObj
spaceParam
private static void addToReplacer(java.util.List<java.lang.String>, java.lang.String);
descriptor: (Ljava/util/List;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 2
1: aload 0
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 replacerList Ljava/util/List<Ljava/lang/String;>;
0 3 1 item Ljava/lang/String;
Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)V
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
replacerList
item
protected java.lang.Object stringifyAStringNoReplacer(java.lang.Object, java.lang.Object, java.lang.Object, com.oracle.truffle.js.runtime.util.StringBuilderProfile);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toStringIsString:(Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 1: new java.lang.StringBuilder
dup
aload 5
invokevirtual java.lang.String.length:()I
bipush 8
iadd
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 6
start local 6 2: aload 4
aload 6
aload 5
invokestatic com.oracle.truffle.js.builtins.helper.JSONStringifyStringNode.jsonQuote:(Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;Ljava/lang/StringBuilder;Ljava/lang/String;)V
3: aload 4
aload 6
invokevirtual com.oracle.truffle.js.runtime.util.StringBuilderProfile.toString:(Ljava/lang/StringBuilder;)Ljava/lang/String;
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/JSONBuiltins$JSONStringifyNode;
0 4 1 value Ljava/lang/Object;
0 4 2 replacer Ljava/lang/Object;
0 4 3 spaceParam Ljava/lang/Object;
0 4 4 stringBuilderProfile Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
1 4 5 str Ljava/lang/String;
2 4 6 builder Ljava/lang/StringBuilder;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isString(value)", "!isCallable(replacer)", "!isArray(replacer)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "createStringBuilderProfile()")
MethodParameters:
Name Flags
value
replacer
spaceParam
stringBuilderProfile
protected com.oracle.truffle.js.runtime.util.StringBuilderProfile createStringBuilderProfile();
descriptor: ()Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getStringLengthLimit:()I
invokestatic com.oracle.truffle.js.runtime.util.StringBuilderProfile.create:(I)Lcom/oracle/truffle/js/runtime/util/StringBuilderProfile;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
protected java.lang.Object stringifyNoReplacer(java.lang.Object, java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 3
aconst_null
aconst_null
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.stringifyIntl:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List;)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$JSONStringifyNode;
0 1 1 value Ljava/lang/Object;
0 1 2 replacer Ljava/lang/Object;
0 1 3 spaceParam Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isString(value)", "!isCallable(replacer)", "!isArray(replacer)"})
MethodParameters:
Name Flags
value
replacer
spaceParam
private stringifyIntl(, , com.oracle.truffle.api.object.DynamicObject, java.util.List<java.lang.String>);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.spaceIsUndefinedProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
1: iconst_0
StackMap locals: com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode java.lang.Object java.lang.Object com.oracle.truffle.api.object.DynamicObject java.util.List
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
2: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 3
ldc ""
goto 4
StackMap locals:
StackMap stack:
3: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.getGap:(Ljava/lang/Object;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
4: astore 5
start local 5 5: aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.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 6
start local 6 6: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.createWrapperPropertyNode:Lcom/oracle/truffle/js/nodes/access/CreateDataPropertyNode;
ifnonnull 9
7: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
8: aload 0
aload 0
aload 0
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
ldc ""
invokestatic com.oracle.truffle.js.nodes.access.CreateDataPropertyNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/access/CreateDataPropertyNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.CreateDataPropertyNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.createWrapperPropertyNode:Lcom/oracle/truffle/js/nodes/access/CreateDataPropertyNode;
9: StackMap locals: java.lang.String com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.createWrapperPropertyNode:Lcom/oracle/truffle/js/nodes/access/CreateDataPropertyNode;
aload 6
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.CreateDataPropertyNode.executeVoid:(Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 0
new com.oracle.truffle.js.builtins.helper.JSONData
dup
aload 5
aload 3
aload 4
invokespecial com.oracle.truffle.js.builtins.helper.JSONData.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List;)V
ldc ""
aload 6
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.jsonStr:(Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/object/DynamicObject;)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 11 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 11 1 value Ljava/lang/Object;
0 11 2 spaceParam Ljava/lang/Object;
0 11 3 replacerFnObj Lcom/oracle/truffle/api/object/DynamicObject;
0 11 4 replacerList Ljava/util/List<Ljava/lang/String;>;
5 11 5 gap Ljava/lang/String;
6 11 6 wrapper Lcom/oracle/truffle/api/object/DynamicObject;
Signature: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
value
spaceParam
replacerFnObj
replacerList
private java.lang.String getGap(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
ifeq 7
2: aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSNumber.isJSNumber:(Ljava/lang/Object;)Z
ifeq 5
3: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toNumber:(Ljava/lang/Object;)Ljava/lang/Number;
astore 2
4: goto 7
StackMap locals: java.lang.Object
StackMap stack:
5: aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSString.isJSString:(Ljava/lang/Object;)Z
ifeq 7
6: aload 0
aload 2
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toString:(Ljava/lang/Object;)Ljava/lang/String;
astore 2
7: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isNumber:(Ljava/lang/Object;)Z
ifeq 13
8: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
ifnonnull 11
9: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
10: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
11: StackMap locals:
StackMap stack:
iconst_0
bipush 10
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toIntegerNode:Lcom/oracle/truffle/js/nodes/cast/JSToIntegerAsIntNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.cast.JSToIntegerAsIntNode.executeInt:(Ljava/lang/Object;)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 3
start local 3 12: iload 3
invokestatic com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.makeGap:(I)Ljava/lang/String;
areturn
end local 3 13: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
ifeq 16
14: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.spaceIsStringBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
15: aload 2
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toStringIsString:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.makeGap:(Ljava/lang/String;)Ljava/lang/String;
areturn
16: StackMap locals:
StackMap stack:
ldc ""
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 17 1 spaceParam Ljava/lang/Object;
1 17 2 space Ljava/lang/Object;
12 13 3 newSpace I
MethodParameters:
Name Flags
spaceParam
private static java.lang.String makeGap(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
bipush 10
if_icmpgt 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
bipush 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 spaceStr Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
spaceStr
private static java.lang.String makeGap(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iload 0
newarray 5
astore 1
start local 1 1: aload 1
bipush 32
invokestatic java.util.Arrays.fill:([CC)V
2: new java.lang.String
dup
aload 1
invokespecial java.lang.String.<init>:([C)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 spaceValue I
1 3 1 ar [C
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
spaceValue
protected java.lang.Number toNumber(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Number;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toNumberNode:Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.cast.JSToNumberNode.create:()Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
invokevirtual com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.cast.JSToNumberNode
putfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toNumberNode:Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode.toNumberNode:Lcom/oracle/truffle/js/nodes/cast/JSToNumberNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.cast.JSToNumberNode.executeNumber:(Ljava/lang/Object;)Ljava/lang/Number;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/builtins/JSONBuiltins$JSONStringifyNode;
0 4 1 target Ljava/lang/Object;
MethodParameters:
Name Flags
target
}
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 Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract JSONOperation = com.oracle.truffle.js.builtins.JSONBuiltins$JSONOperation of com.oracle.truffle.js.builtins.JSONBuiltins
public abstract JSONStringifyNode = com.oracle.truffle.js.builtins.JSONBuiltins$JSONStringifyNode of com.oracle.truffle.js.builtins.JSONBuiltins