public class com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode extends com.oracle.truffle.js.runtime.JavaScriptRootNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode
super_class: com.oracle.truffle.js.runtime.JavaScriptRootNode
{
public static final java.lang.String NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "setBreakPoint"
private final com.oracle.truffle.trufflenode.GraalJSAccess graalJSAccess;
descriptor: Lcom/oracle/truffle/trufflenode/GraalJSAccess;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.oracle.truffle.trufflenode.GraalJSAccess);
descriptor: (Lcom/oracle/truffle/trufflenode/GraalJSAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.js.runtime.JavaScriptRootNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.graalJSAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/trufflenode/node/debug/SetBreakPointNode;
0 3 1 graalJSAccess Lcom/oracle/truffle/trufflenode/GraalJSAccess;
MethodParameters:
Name Flags
graalJSAccess
public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgumentCount:([Ljava/lang/Object;)I
istore 3
start local 3 2: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
astore 4
start local 4 3: iload 3
iconst_1
if_icmplt 5
4: aload 2
iconst_0
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgument:([Ljava/lang/Object;I)Ljava/lang/Object;
astore 4
5: StackMap locals: java.lang.Object[] int java.lang.Object
StackMap stack:
aload 4
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
ifeq 9
6: aload 4
checkcast com.oracle.truffle.api.object.DynamicObject
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFunctionData:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
astore 5
start local 5 7: aload 5
instanceof com.oracle.truffle.api.RootCallTarget
ifeq 9
8: aload 0
aload 5
checkcast com.oracle.truffle.api.RootCallTarget
aload 2
invokevirtual com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.addBreakPoint:(Lcom/oracle/truffle/api/RootCallTarget;[Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 5 9: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.unsupported:()V
10: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
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/trufflenode/node/debug/SetBreakPointNode;
0 11 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 11 2 args [Ljava/lang/Object;
2 11 3 numArgs I
3 11 4 arg0 Ljava/lang/Object;
7 9 5 callTarget Lcom/oracle/truffle/api/CallTarget;
MethodParameters:
Name Flags
frame
private int addBreakPoint(com.oracle.truffle.api.RootCallTarget, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/api/RootCallTarget;[Ljava/lang/Object;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgumentCount:([Ljava/lang/Object;)I
istore 3
start local 3 1: aload 1
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 4
start local 4 2: aload 4
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 5
start local 5 3: aload 5
invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
astore 6
start local 6 4: aload 5
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
istore 7
start local 7 5: aload 5
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartColumn:()I
istore 8
start local 8 6: iconst_0
istore 9
start local 9 7: iload 3
iconst_2
if_icmplt 12
8: aload 2
iconst_1
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgument:([Ljava/lang/Object;I)Ljava/lang/Object;
astore 10
start local 10 9: aload 10
instanceof java.lang.Number
ifeq 12
10: aload 10
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
istore 9
11: iload 7
iload 9
iadd
istore 7
end local 10 12: StackMap locals: com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode com.oracle.truffle.api.RootCallTarget java.lang.Object[] int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.source.Source int int int
StackMap stack:
iload 9
ifle 14
13: iconst_1
istore 8
14: StackMap locals:
StackMap stack:
iload 3
iconst_3
if_icmplt 18
15: aload 2
iconst_2
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgument:([Ljava/lang/Object;I)Ljava/lang/Object;
astore 10
start local 10 16: aload 10
instanceof java.lang.Number
ifeq 18
17: iload 8
aload 10
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
iadd
istore 8
end local 10 18: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 19: iload 3
iconst_5
if_icmplt 22
20: aload 2
iconst_4
invokestatic com.oracle.truffle.js.runtime.JSArguments.getUserArgument:([Ljava/lang/Object;I)Ljava/lang/Object;
astore 11
start local 11 21: aload 11
invokestatic com.oracle.truffle.js.runtime.JSRuntime.toBoolean:(Ljava/lang/Object;)Z
istore 10
end local 11 22: StackMap locals: int
StackMap stack:
iconst_1
iload 7
aload 6
invokevirtual com.oracle.truffle.api.source.Source.getLineCount:()I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 7
23: iconst_1
iload 8
aload 6
iload 7
invokevirtual com.oracle.truffle.api.source.Source.getLineLength:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 8
24: aload 6
iload 7
invokevirtual com.oracle.truffle.api.source.Source.getLineStartOffset:(I)I
iload 8
iadd
iconst_1
isub
istore 11
start local 11 25: new com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode$BreakPointOffsetFinder
dup
iload 11
invokespecial com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode$BreakPointOffsetFinder.<init>:(I)V
astore 12
start local 12 26: aload 4
aload 12
invokevirtual com.oracle.truffle.api.nodes.Node.accept:(Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
27: aload 12
invokevirtual com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode$BreakPointOffsetFinder.getBestOffset:()I
istore 13
start local 13 28: aload 6
iload 13
invokevirtual com.oracle.truffle.api.source.Source.getLineNumber:(I)I
istore 7
29: iload 13
aload 6
iload 7
invokevirtual com.oracle.truffle.api.source.Source.getLineStartOffset:(I)I
isub
iconst_1
iadd
istore 8
30: aload 0
aload 6
iload 7
iload 8
iload 10
invokevirtual com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.addBreakPoint:(Lcom/oracle/truffle/api/source/Source;IIZ)V
31: iconst_0
ireturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 32 0 this Lcom/oracle/truffle/trufflenode/node/debug/SetBreakPointNode;
0 32 1 callTarget Lcom/oracle/truffle/api/RootCallTarget;
0 32 2 args [Ljava/lang/Object;
1 32 3 numArgs I
2 32 4 rootNode Lcom/oracle/truffle/api/nodes/Node;
3 32 5 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
4 32 6 source Lcom/oracle/truffle/api/source/Source;
5 32 7 lineNo I
6 32 8 columnNo I
7 32 9 userLine I
9 12 10 arg1 Ljava/lang/Object;
16 18 10 arg2 Ljava/lang/Object;
19 32 10 oneShot Z
21 22 11 arg4 Ljava/lang/Object;
25 32 11 offset I
26 32 12 visitor Lcom/oracle/truffle/trufflenode/node/debug/SetBreakPointNode$BreakPointOffsetFinder;
28 32 13 bestOffset I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
callTarget
args
private void addBreakPoint(com.oracle.truffle.api.source.Source, int, int, boolean);
descriptor: (Lcom/oracle/truffle/api/source/Source;IIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, 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.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
iload 2
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.lineIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
iload 3
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.columnIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
astore 5
start local 5 1: iload 4
ifeq 3
2: aload 5
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.oneShot:()Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
pop
3: StackMap locals: com.oracle.truffle.api.debug.Breakpoint$Builder
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
astore 6
start local 6 4: aload 0
getfield com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode.graalJSAccess:Lcom/oracle/truffle/trufflenode/GraalJSAccess;
ldc "debugger"
ldc Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual com.oracle.truffle.trufflenode.GraalJSAccess.lookupInstrument:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.Debugger
astore 7
start local 7 5: aload 7
aload 6
invokevirtual com.oracle.truffle.api.debug.Debugger.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
pop
6: return
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 7 0 this Lcom/oracle/truffle/trufflenode/node/debug/SetBreakPointNode;
0 7 1 source Lcom/oracle/truffle/api/source/Source;
0 7 2 lineNo I
0 7 3 columnNo I
0 7 4 oneShot Z
1 7 5 builder Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
4 7 6 breakpoint Lcom/oracle/truffle/api/debug/Breakpoint;
5 7 7 debugger Lcom/oracle/truffle/api/debug/Debugger;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
source
lineNo
columnNo
oneShot
private static void unsupported();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Unsupported usage of Debug.setBreakpoint!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
private static boolean startsWith(com.oracle.truffle.api.source.SourceSection, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
astore 2
start local 2 1: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 2: iload 3
aload 2
invokeinterface java.lang.CharSequence.length:()I
if_icmple 4
3: iconst_0
ireturn
4: StackMap locals: java.lang.CharSequence int
StackMap stack:
aload 2
iconst_0
iload 3
invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 5 1 prefix Ljava/lang/String;
1 5 2 characters Ljava/lang/CharSequence;
2 5 3 n I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
sourceSection
prefix
}
SourceFile: "SetBreakPointNode.java"
NestMembers:
com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode$BreakPointOffsetFinder
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
BreakPointOffsetFinder = com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode$BreakPointOffsetFinder of com.oracle.truffle.trufflenode.node.debug.SetBreakPointNode