public class com.oracle.truffle.js.stats.ShellWithStats extends com.oracle.truffle.js.shell.RepeatingLauncher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.stats.ShellWithStats
super_class: com.oracle.truffle.js.shell.RepeatingLauncher
{
private boolean heapDump;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String heapDumpFileName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.shell.RepeatingLauncher.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.truffle.js.stats.ShellWithStats.heapDump:Z
2: aload 0
aconst_null
putfield com.oracle.truffle.js.stats.ShellWithStats.heapDumpFileName:Ljava/lang/String;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/stats/ShellWithStats;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.js.stats.ShellWithStats
dup
invokespecial com.oracle.truffle.js.stats.ShellWithStats.<init>:()V
aload 0
invokevirtual com.oracle.truffle.js.stats.ShellWithStats.launch:([Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 args [Ljava/lang/String;
MethodParameters:
Name Flags
args
protected com.oracle.truffle.js.shell.JSLauncher$PreprocessResult preprocessArgument(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/shell/JSLauncher$PreprocessResult;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "heap-dump"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: aload 0
iconst_1
putfield com.oracle.truffle.js.stats.ShellWithStats.heapDump:Z
2: getstatic com.oracle.truffle.js.shell.JSLauncher$PreprocessResult.Consumed:Lcom/oracle/truffle/js/shell/JSLauncher$PreprocessResult;
areturn
3: StackMap locals:
StackMap stack:
aload 1
ldc "heap-dump-file"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 6
4: aload 0
aload 1
aload 1
ldc "="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
putfield com.oracle.truffle.js.stats.ShellWithStats.heapDumpFileName:Ljava/lang/String;
5: getstatic com.oracle.truffle.js.shell.JSLauncher$PreprocessResult.Consumed:Lcom/oracle/truffle/js/shell/JSLauncher$PreprocessResult;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.js.shell.RepeatingLauncher.preprocessArgument:(Ljava/lang/String;)Lcom/oracle/truffle/js/shell/JSLauncher$PreprocessResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/stats/ShellWithStats;
0 7 1 argument Ljava/lang/String;
MethodParameters:
Name Flags
argument
protected void printHelp(org.graalvm.options.OptionCategory);
descriptor: (Lorg/graalvm/options/OptionCategory;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.truffle.js.shell.RepeatingLauncher.printHelp:(Lorg/graalvm/options/OptionCategory;)V
1: ldc "--heap-dump"
ldc "take a heap dump at the end of the execution"
invokestatic com.oracle.truffle.js.stats.ShellWithStats.printOption:(Ljava/lang/String;Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/stats/ShellWithStats;
0 3 1 maxCategory Lorg/graalvm/options/OptionCategory;
MethodParameters:
Name Flags
maxCategory
protected int executeScripts(org.graalvm.polyglot.Context$Builder);
descriptor: (Lorg/graalvm/polyglot/Context$Builder;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.truffle.js.shell.RepeatingLauncher.executeScripts:(Lorg/graalvm/polyglot/Context$Builder;)I
istore 2
start local 2 1: getstatic com.oracle.truffle.js.runtime.JSConfig.SubstrateVM:Z
ifne 12
aload 0
getfield com.oracle.truffle.js.stats.ShellWithStats.heapDump:Z
ifeq 12
2: aload 0
getfield com.oracle.truffle.js.stats.ShellWithStats.heapDumpFileName:Ljava/lang/String;
ifnonnull 3
invokestatic com.oracle.truffle.js.builtins.helper.HeapDump.defaultDumpName:()Ljava/lang/String;
goto 4
StackMap locals: int
StackMap stack:
3: aload 0
getfield com.oracle.truffle.js.stats.ShellWithStats.heapDumpFileName:Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
4: astore 3
start local 3 5: aload 3
invokestatic com.oracle.truffle.js.stats.ShellWithStats.deleteIfExists:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Dumping the heap to: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: aload 3
iconst_1
invokestatic com.oracle.truffle.js.builtins.helper.HeapDump.dump:(Ljava/lang/String;Z)V
8: iconst_1
anewarray java.lang.String
dup
iconst_0
aload 3
aastore
invokestatic com.oracle.truffle.js.stats.heap.HeapDumpAnalyzer.main:([Ljava/lang/String;)V
end local 3 9: goto 12
StackMap locals:
StackMap stack: java.io.IOException
10: astore 3
start local 3 11: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 12: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/js/stats/ShellWithStats;
0 13 1 contextBuilder Lorg/graalvm/polyglot/Context$Builder;
1 13 2 result I
5 9 3 dumpName Ljava/lang/String;
11 12 3 e Ljava/io/IOException;
Exception table:
from to target type
2 9 10 Class java.io.IOException
MethodParameters:
Name Flags
contextBuilder
private static void deleteIfExists(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.io.File.exists:()Z
ifeq 5
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Deleting existing file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: aload 1
invokevirtual java.io.File.delete:()Z
ifne 5
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "could not delete"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: StackMap locals: java.io.File
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 dumpName Ljava/lang/String;
1 6 1 dumpFile Ljava/io/File;
MethodParameters:
Name Flags
dumpName
}
SourceFile: "ShellWithStats.java"
InnerClasses:
public final PreprocessResult = com.oracle.truffle.js.shell.JSLauncher$PreprocessResult of com.oracle.truffle.js.shell.JSLauncher
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context