class com.oracle.truffle.js.shell.JSFuzzilliRunner
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.shell.JSFuzzilliRunner
super_class: java.lang.Object
{
private static final int TIMEOUT_EXIT_CODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 254
private static final int OUT_OF_MEMORY_EXIT_CODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 253
private static final com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel logLevel;
descriptor: Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
putstatic com.oracle.truffle.js.shell.JSFuzzilliRunner.logLevel:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/shell/JSFuzzilliRunner;
public static int runFuzzilliREPRL(org.graalvm.polyglot.Context$Builder);
descriptor: (Lorg/graalvm/polyglot/Context$Builder;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=21, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.RandomAccessFile
dup
new java.io.File
dup
ldc "/dev/fd/100"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
ldc "rws"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 2: new java.io.RandomAccessFile
dup
new java.io.File
dup
ldc "/dev/fd/101"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
ldc "rws"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
start local 4 3: new java.io.RandomAccessFile
dup
new java.io.File
dup
ldc "/dev/fd/102"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
ldc "rws"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
start local 5 4: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.info:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "GraalJS Fuzzilli REPRL started"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
5: invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/js/shell/JSFuzzilliRunner.lambda$0(Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
astore 6
start local 6 6: invokedynamic run()Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/js/shell/JSFuzzilliRunner.lambda$1()V (6)
()V
astore 7
start local 7 7: iconst_4
newarray 8
dup
iconst_0
bipush 72
bastore
dup
iconst_1
bipush 69
bastore
dup
iconst_2
bipush 76
bastore
dup
iconst_3
bipush 79
bastore
astore 8
start local 8 8: bipush 8
newarray 8
astore 9
start local 9 9: iconst_4
newarray 8
astore 10
start local 10 10: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "writing HELO..."
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
11: aload 4
aload 8
invokevirtual java.io.RandomAccessFile.write:([B)V
12: aload 3
aload 9
ldc "HELO"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.expectResponse:(Ljava/io/RandomAccessFile;[BLjava/lang/String;)Z
ifne 18
13: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "Invalid HELO response from parent: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
14: aload 5
ifnull 15
aload 5
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals: org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile java.io.RandomAccessFile java.io.RandomAccessFile java.util.function.Consumer java.lang.Runnable byte[] byte[] byte[]
StackMap stack:
15: aload 4
ifnull 16
aload 4
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
16: aload 3
ifnull 17
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
17: StackMap locals:
StackMap stack:
iconst_m1
ireturn
18: StackMap locals:
StackMap stack:
iconst_m1
istore 11
start local 11 19: aconst_null
astore 12
start local 12 20: new java.util.Timer
dup
iconst_1
invokespecial java.util.Timer.<init>:(Z)V
astore 13
start local 13 21: StackMap locals: int java.lang.String java.util.Timer
StackMap stack:
aload 3
aload 9
ldc "exec"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.expectResponse:(Ljava/io/RandomAccessFile;[BLjava/lang/String;)Z
ifne 27
22: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "Unknown action: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
23: aload 5
ifnull 24
aload 5
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
24: aload 4
ifnull 25
aload 4
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
25: aload 3
ifnull 26
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
26: StackMap locals:
StackMap stack:
iconst_m1
ireturn
27: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "trying to read scriptSize"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
28: aload 3
aload 9
invokevirtual java.io.RandomAccessFile.read:([B)I
pop
29: aload 9
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getLong:()J
l2i
istore 14
start local 14 30: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "got scriptSize: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
31: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "Reading script of length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
32: iload 14
newarray 8
astore 15
start local 15 33: aload 5
aload 15
invokevirtual java.io.RandomAccessFile.read:([B)I
istore 16
start local 16 34: iload 16
iload 14
if_icmpeq 37
35: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "ERROR: read %d bytes, but scriptSize was %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 16
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
36: goto 38
37: StackMap locals: int byte[] int
StackMap stack:
getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "got %d bytes"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 16
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 15
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
astore 12
39: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "Got script:"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
40: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
aload 12
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
41: aconst_null
astore 17
aconst_null
astore 18
42: aload 0
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 19
start local 19 43: aload 19
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "__fuzzout__"
aload 6
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
44: aload 19
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "crash"
aload 7
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
45: new com.oracle.truffle.js.shell.JSFuzzilliRunner$1
dup
aload 19
invokespecial com.oracle.truffle.js.shell.JSFuzzilliRunner$1.<init>:(Lorg/graalvm/polyglot/Context;)V
astore 20
start local 20 46: aload 13
aload 20
ldc 1000
invokevirtual java.util.Timer.schedule:(Ljava/util/TimerTask;J)V
47: aload 19
ldc "js"
aload 12
ldc "fuzzilliInput"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
48: aload 20
invokevirtual java.util.TimerTask.cancel:()Z
pop
end local 20 49: aload 19
ifnull 55
aload 19
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 55
StackMap locals: org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile java.io.RandomAccessFile java.io.RandomAccessFile java.util.function.Consumer java.lang.Runnable byte[] byte[] byte[] int java.lang.String java.util.Timer int byte[] int java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
50: astore 17
aload 19
ifnull 51
aload 19
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 19 StackMap locals:
StackMap stack:
51: aload 17
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
52: astore 18
aload 17
ifnonnull 53
aload 18
astore 17
goto 54
StackMap locals:
StackMap stack:
53: aload 17
aload 18
if_acmpeq 54
aload 17
aload 18
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
54: aload 17
athrow
55: StackMap locals:
StackMap stack:
iconst_0
istore 11
end local 16 end local 15 end local 14 56: goto 91
StackMap locals: org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile java.io.RandomAccessFile java.io.RandomAccessFile java.util.function.Consumer java.lang.Runnable byte[] byte[] byte[] int java.lang.String java.util.Timer
StackMap stack: org.graalvm.polyglot.PolyglotException
57: astore 14
start local 14 58: aload 14
invokevirtual org.graalvm.polyglot.PolyglotException.isExit:()Z
ifeq 61
59: iconst_0
istore 11
60: goto 91
StackMap locals: org.graalvm.polyglot.PolyglotException
StackMap stack:
61: aload 14
invokevirtual org.graalvm.polyglot.PolyglotException.isCancelled:()Z
ifeq 65
62: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.info:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "TIMEOUT"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
63: sipush 254
istore 11
64: goto 91
StackMap locals:
StackMap stack:
65: aload 14
invokevirtual org.graalvm.polyglot.PolyglotException.isSyntaxError:()Z
ifeq 68
66: bipush 7
istore 11
67: goto 91
StackMap locals:
StackMap stack:
68: aload 14
invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
ifne 71
69: bipush 7
istore 11
70: goto 91
71: StackMap locals:
StackMap stack:
aload 14
invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
ldc "java.lang.OutOfMemoryError"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 77
72: aload 4
aload 10
sipush 253
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.sendExitCode:(Ljava/io/RandomAccessFile;[BI)V
73: aload 5
ifnull 74
aload 5
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
74: aload 4
ifnull 75
aload 4
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
75: aload 3
ifnull 76
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
76: StackMap locals:
StackMap stack:
iconst_1
ireturn
77: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "INTERNAL ERROR POLYGLOT EXCEPTION"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
78: aload 14
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.printStackTrace:(Ljava/lang/Throwable;)V
79: iconst_m1
istore 11
end local 14 80: goto 91
81: StackMap locals: org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile java.io.RandomAccessFile java.io.RandomAccessFile java.util.function.Consumer java.lang.Runnable byte[] byte[] byte[] int java.lang.String java.util.Timer
StackMap stack: java.lang.OutOfMemoryError
pop
82: aload 4
aload 10
sipush 253
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.sendExitCode:(Ljava/io/RandomAccessFile;[BI)V
83: aload 5
ifnull 84
aload 5
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
84: aload 4
ifnull 85
aload 4
invokevirtual java.io.RandomAccessFile.close:()V
StackMap locals:
StackMap stack:
85: aload 3
ifnull 86
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
86: StackMap locals:
StackMap stack:
iconst_1
ireturn
87: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
start local 14 88: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "NON-POLYGLOT EXCEPTION"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
89: aload 14
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.printStackTrace:(Ljava/lang/Throwable;)V
90: iconst_m1
istore 11
end local 14 91: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "Sending exit code "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
92: aload 4
aload 10
iload 11
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.sendExitCode:(Ljava/io/RandomAccessFile;[BI)V
93: goto 21
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 StackMap locals: org.graalvm.polyglot.Context$Builder java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile java.io.RandomAccessFile java.io.RandomAccessFile
StackMap stack: java.lang.Throwable
94: astore 1
95: aload 5
ifnull 96
aload 5
invokevirtual java.io.RandomAccessFile.close:()V
end local 5 StackMap locals:
StackMap stack:
96: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
97: astore 2
aload 1
ifnonnull 98
aload 2
astore 1
goto 99
StackMap locals:
StackMap stack:
98: aload 1
aload 2
if_acmpeq 99
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
99: aload 4
ifnull 100
aload 4
invokevirtual java.io.RandomAccessFile.close:()V
end local 4 StackMap locals:
StackMap stack:
100: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
101: astore 2
aload 1
ifnonnull 102
aload 2
astore 1
goto 103
StackMap locals:
StackMap stack:
102: aload 1
aload 2
if_acmpeq 103
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
103: aload 3
ifnull 104
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
end local 3 StackMap locals:
StackMap stack:
104: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
105: astore 2
aload 1
ifnonnull 106
aload 2
astore 1
goto 107
StackMap locals:
StackMap stack:
106: aload 1
aload 2
if_acmpeq 107
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
107: aload 1
athrow
StackMap locals: org.graalvm.polyglot.Context$Builder
StackMap stack: java.lang.Throwable
108: astore 1
start local 1 109: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
ldc "OUTER THROWABLE"
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
110: aload 1
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.printStackTrace:(Ljava/lang/Throwable;)V
111: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 112 0 contextBuilder Lorg/graalvm/polyglot/Context$Builder;
2 104 3 controlReadF Ljava/io/RandomAccessFile;
3 100 4 controlWriteF Ljava/io/RandomAccessFile;
4 96 5 dataReadF Ljava/io/RandomAccessFile;
6 94 6 fuzzout Ljava/util/function/Consumer<Ljava/lang/String;>;
7 94 7 crash Ljava/lang/Runnable;
8 94 8 helo [B
9 94 9 response [B
10 94 10 writeExitCode [B
19 94 11 status I
20 94 12 script Ljava/lang/String;
21 94 13 timer Ljava/util/Timer;
30 56 14 scriptSize I
33 56 15 scriptChars [B
34 56 16 n I
43 51 19 context Lorg/graalvm/polyglot/Context;
46 49 20 canceller Ljava/util/TimerTask;
58 80 14 e Lorg/graalvm/polyglot/PolyglotException;
88 91 14 t Ljava/lang/Throwable;
109 112 1 t Ljava/lang/Throwable;
Exception table:
from to target type
43 49 50 any
42 52 52 any
21 23 57 Class org.graalvm.polyglot.PolyglotException
27 56 57 Class org.graalvm.polyglot.PolyglotException
21 23 81 Class java.lang.OutOfMemoryError
27 56 81 Class java.lang.OutOfMemoryError
21 23 87 Class java.lang.Throwable
27 56 87 Class java.lang.Throwable
4 14 94 any
18 23 94 any
27 73 94 any
77 83 94 any
87 94 94 any
3 15 97 any
18 24 97 any
27 74 97 any
77 84 97 any
87 97 97 any
2 16 101 any
18 25 101 any
27 75 101 any
77 85 101 any
87 101 101 any
1 17 105 any
18 26 105 any
27 76 105 any
77 86 105 any
87 105 105 any
0 17 108 Class java.lang.Throwable
18 26 108 Class java.lang.Throwable
27 76 108 Class java.lang.Throwable
77 86 108 Class java.lang.Throwable
87 108 108 Class java.lang.Throwable
MethodParameters:
Name Flags
contextBuilder
private static void sendExitCode(java.io.RandomAccessFile, byte[], int);
descriptor: (Ljava/io/RandomAccessFile;[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
bipush 8
ishl
istore 3
start local 3 1: aload 1
iconst_0
iload 3
sipush 255
iand
i2b
bastore
2: aload 1
iconst_1
iload 3
bipush 8
iushr
sipush 255
iand
i2b
bastore
3: aload 1
iconst_2
iload 3
bipush 16
iushr
sipush 255
iand
i2b
bastore
4: aload 1
iconst_3
iload 3
bipush 24
iushr
sipush 255
iand
i2b
bastore
5: aload 0
aload 1
invokevirtual java.io.RandomAccessFile.write:([B)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 controlWriteF Ljava/io/RandomAccessFile;
0 7 1 writeExitCode [B
0 7 2 statusCode I
1 7 3 status I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
controlWriteF final
writeExitCode final
statusCode
private static boolean expectResponse(java.io.RandomAccessFile, byte[], java.lang.String);
descriptor: (Ljava/io/RandomAccessFile;[BLjava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "trying to read "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
1: aload 0
aload 1
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.io.RandomAccessFile.read:([BII)I
istore 3
start local 3 2: iload 3
aload 2
invokevirtual java.lang.String.length:()I
if_icmpeq 5
3: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.severe:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "fuzzilliExpectResponse: no input available, got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
4: iconst_0
ireturn
5: StackMap locals: int
StackMap stack:
getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.debug:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
new java.lang.StringBuilder
dup
ldc "fuzzilliExpectResponse: got response: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
new java.lang.String
dup
aload 1
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.shell.JSFuzzilliRunner.log:(Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;Ljava/lang/String;)V
6: iconst_0
istore 4
start local 4 7: goto 11
8: StackMap locals: int
StackMap stack:
aload 1
iload 4
baload
aload 2
iload 4
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 2
invokevirtual java.lang.String.length:()I
if_icmplt 8
end local 4 12: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 source Ljava/io/RandomAccessFile;
0 13 1 buf [B
0 13 2 expected Ljava/lang/String;
2 13 3 bytesRead I
7 12 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
buf final
expected
private static void printStackTrace(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private static void log(com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;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: getstatic com.oracle.truffle.js.shell.JSFuzzilliRunner.logLevel:Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
invokevirtual com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.ordinal:()I
aload 0
invokevirtual com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel.ordinal:()I
if_icmplt 3
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 1
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 level Lcom/oracle/truffle/js/shell/JSFuzzilliRunner$LogLevel;
0 4 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
level
msg
private static void lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.RandomAccessFile
dup
new java.io.File
dup
ldc "/dev/fd/103"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
ldc "rws"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 2: aload 3
aload 0
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.io.RandomAccessFile.write:([B)V
3: aload 3
ifnull 11
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
goto 11
StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
StackMap stack: java.lang.Throwable
4: astore 1
aload 3
ifnull 5
aload 3
invokevirtual java.io.RandomAccessFile.close:()V
end local 3 StackMap locals:
StackMap stack:
5: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 2
aload 1
ifnonnull 7
aload 2
astore 1
goto 8
StackMap locals:
StackMap stack:
7: aload 1
aload 2
if_acmpeq 8
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
8: aload 1
athrow
9: StackMap locals: java.lang.String
StackMap stack: java.io.IOException
astore 1
start local 1 10: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 s Ljava/lang/String;
2 5 3 dataWriteF Ljava/io/RandomAccessFile;
10 11 1 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 any
1 6 6 any
0 9 9 Class java.io.IOException
private static void lambda$1();
descriptor: ()V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.ThreadDeath
dup
invokespecial java.lang.ThreadDeath.<init>:()V
athrow
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "JSFuzzilliRunner.java"
NestMembers:
com.oracle.truffle.js.shell.JSFuzzilliRunner$1 com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel
InnerClasses:
com.oracle.truffle.js.shell.JSFuzzilliRunner$1
private final LogLevel = com.oracle.truffle.js.shell.JSFuzzilliRunner$LogLevel of com.oracle.truffle.js.shell.JSFuzzilliRunner
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source