public class com.oracle.truffle.js.factory.processor.GenerateProxyProcessor extends com.oracle.truffle.js.factory.processor.AbstractFactoryProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor
super_class: com.oracle.truffle.js.factory.processor.AbstractFactoryProcessor
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.js.factory.processor.AbstractFactoryProcessor.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/factory/processor/GenerateProxyProcessor;
public java.util.Set<java.lang.String> getSupportedAnnotationTypes();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/truffle/js/annotations/GenerateProxy;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/factory/processor/GenerateProxyProcessor;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface javax.annotation.processing.RoundEnvironment.processingOver:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
ldc Lcom/oracle/truffle/js/annotations/GenerateProxy;
invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljava/lang/Class;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor java.util.Set javax.annotation.processing.RoundEnvironment top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.Element
astore 3
start local 3 4: aload 0
aload 3
checkcast javax.lang.model.element.TypeElement
invokevirtual com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.processElement:(Ljavax/lang/model/element/TypeElement;)V
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/factory/processor/GenerateProxyProcessor;
0 7 1 annotations Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
0 7 2 roundEnv Ljavax/annotation/processing/RoundEnvironment;
4 5 3 element Ljavax/lang/model/element/Element;
Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
MethodParameters:
Name Flags
annotations
roundEnv
private void processElement(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.generateProxy:(Ljavax/lang/model/element/TypeElement;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/factory/processor/GenerateProxyProcessor;
0 2 1 element Ljavax/lang/model/element/TypeElement;
MethodParameters:
Name Flags
element
public void generateProxy(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=21, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
aload 1
invokevirtual com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.getPackageName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
astore 3
start local 3 2: new java.lang.StringBuilder
dup
aload 2
aload 2
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "ProxyGen"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 3: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 4: ldc Lcom/oracle/truffle/api/dsl/GeneratedBy;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
astore 6
start local 6 5: ldc Ljava/lang/reflect/InvocationHandler;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
astore 7
start local 7 6: ldc Ljava/lang/reflect/Method;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
astore 8
start local 8 7: aload 0
getfield com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getFiler:()Ljavax/annotation/processing/Filer;
aload 5
iconst_1
anewarray javax.lang.model.element.Element
dup
iconst_0
aload 1
aastore
invokeinterface javax.annotation.processing.Filer.createSourceFile:(Ljava/lang/CharSequence;[Ljavax/lang/model/element/Element;)Ljavax/tools/JavaFileObject;
astore 9
start local 9 8: aconst_null
astore 10
aconst_null
astore 11
9: aload 9
invokeinterface javax.tools.JavaFileObject.openOutputStream:()Ljava/io/OutputStream;
astore 12
start local 12 10: new java.io.PrintStream
dup
aload 12
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 13
start local 13 11: aload 13
new java.lang.StringBuilder
dup
ldc "package "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: aload 13
invokevirtual java.io.PrintStream.println:()V
13: aload 13
new java.lang.StringBuilder
dup
ldc "@"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".class)"
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
14: aload 13
new java.lang.StringBuilder
dup
ldc "public class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokestatic com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.isInterface:(Ljavax/lang/model/element/TypeElement;)Z
ifeq 15
ldc "implements"
goto 16
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream
StackMap stack: java.io.PrintStream java.lang.StringBuilder
15: ldc "extends"
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: aload 13
new java.lang.StringBuilder
dup
ldc "private final "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " handler;"
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
18: aload 13
new java.lang.StringBuilder
dup
ldc "private "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " handler) {"
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
19: aload 13
ldc "this.handler = handler;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: aload 13
invokevirtual java.io.PrintStream.println:()V
22: aload 13
new java.lang.StringBuilder
dup
ldc "public static "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " create("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " handler) {"
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
23: aload 13
new java.lang.StringBuilder
dup
ldc "return new "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "(handler);"
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
24: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: aload 13
invokevirtual java.io.PrintStream.println:()V
26: aload 0
aload 1
invokevirtual com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.getOverridableMethods:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
astore 14
start local 14 27: aload 13
new java.lang.StringBuilder
dup
ldc "private final "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " methods[] = new "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "];"
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
28: aload 14
invokeinterface java.util.List.isEmpty:()Z
ifne 66
29: iconst_0
istore 15
start local 15 30: goto 65
31: StackMap locals: java.util.List int
StackMap stack:
aload 14
iload 15
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 16
start local 16 32: aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 17
start local 17 33: aload 13
invokevirtual java.io.PrintStream.println:()V
34: aload 13
ldc "@Override"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: iconst_0
iload 17
invokestatic java.util.stream.IntStream.range:(II)Ljava/util/stream/IntStream;
aload 16
iload 17
invokedynamic apply(Ljavax/lang/model/element/ExecutableElement;I)Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
com/oracle/truffle/js/factory/processor/GenerateProxyProcessor.lambda$0(Ljavax/lang/model/element/ExecutableElement;II)Ljava/lang/String; (6)
(I)Ljava/lang/String;
invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
36: ldc ", "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
37: astore 18
start local 18 38: aload 13
new java.lang.StringBuilder
dup
ldc "public "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 18
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
39: aload 13
new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " method = methods["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "];"
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
40: iconst_0
iload 17
invokestatic java.util.stream.IntStream.range:(II)Ljava/util/stream/IntStream;
aload 16
invokedynamic apply(Ljavax/lang/model/element/ExecutableElement;)Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
com/oracle/truffle/js/factory/processor/GenerateProxyProcessor.lambda$1(Ljavax/lang/model/element/ExecutableElement;I)Ljava/lang/String; (6)
(I)Ljava/lang/String;
invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
ldc ", "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 41: aload 13
ldc "if (method == null) {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
42: aload 13
ldc "try {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: aload 13
new java.lang.StringBuilder
dup
ldc "method = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".class.getMethod(\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 19
invokevirtual java.lang.String.isEmpty:()Z
ifeq 44
ldc ""
goto 45
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream java.util.List int javax.lang.model.element.ExecutableElement int java.lang.String java.lang.String
StackMap stack: java.io.PrintStream java.lang.StringBuilder
44: new java.lang.StringBuilder
dup
ldc ", "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream java.util.List int javax.lang.model.element.ExecutableElement int java.lang.String java.lang.String
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
45: 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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
46: aload 13
new java.lang.StringBuilder
dup
ldc "methods["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] = method;"
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
47: aload 13
ldc "} catch (NoSuchMethodException e) {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
48: aload 13
ldc "throw new AssertionError(e);"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
49: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
50: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: iconst_0
iload 17
invokestatic java.util.stream.IntStream.range:(II)Ljava/util/stream/IntStream;
invokedynamic apply()Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
com/oracle/truffle/js/factory/processor/GenerateProxyProcessor.lambda$2(I)Ljava/lang/String; (6)
(I)Ljava/lang/String;
invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
ldc ", "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
astore 20
start local 20 52: aload 13
new java.lang.StringBuilder
dup
ldc "Object[] args = new Object[]{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 20
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
53: aload 13
ldc "try {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
54: aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
getstatic javax.lang.model.type.TypeKind.VOID:Ljavax/lang/model/type/TypeKind;
if_acmpeq 57
55: aload 13
new java.lang.StringBuilder
dup
ldc "return "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
invokestatic com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.cast:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "handler.invoke(this, method, args);"
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
56: goto 58
57: StackMap locals: java.lang.String
StackMap stack:
aload 13
ldc "handler.invoke(this, method, args);"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
58: StackMap locals:
StackMap stack:
aload 13
ldc "} catch (RuntimeException | Error e) {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
59: aload 13
ldc "throw e;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
60: aload 13
ldc "} catch (Throwable e) {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
61: aload 13
ldc "throw new RuntimeException(e);"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
62: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
63: aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 20 end local 19 end local 18 end local 17 end local 16 64: iinc 15 1
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream java.util.List int
StackMap stack:
65: iload 15
aload 14
invokeinterface java.util.List.size:()I
if_icmplt 31
end local 15 66: StackMap locals:
StackMap stack:
aload 13
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 14 67: aload 13
ifnull 70
aload 13
invokevirtual java.io.PrintStream.close:()V
goto 70
StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.PrintStream
StackMap stack: java.lang.Throwable
68: astore 10
aload 13
ifnull 69
aload 13
invokevirtual java.io.PrintStream.close:()V
end local 13 StackMap locals:
StackMap stack:
69: aload 10
athrow
StackMap locals:
StackMap stack:
70: aload 12
ifnull 80
aload 12
invokevirtual java.io.OutputStream.close:()V
goto 80
StackMap locals:
StackMap stack: java.lang.Throwable
71: astore 11
aload 10
ifnonnull 72
aload 11
astore 10
goto 73
StackMap locals:
StackMap stack:
72: aload 10
aload 11
if_acmpeq 73
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
73: aload 12
ifnull 74
aload 12
invokevirtual java.io.OutputStream.close:()V
end local 12 StackMap locals:
StackMap stack:
74: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
75: astore 11
aload 10
ifnonnull 76
aload 11
astore 10
goto 77
StackMap locals:
StackMap stack:
76: aload 10
aload 11
if_acmpeq 77
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
77: aload 10
athrow
end local 9 78: StackMap locals: com.oracle.truffle.js.factory.processor.GenerateProxyProcessor javax.lang.model.element.TypeElement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack: java.io.IOException
astore 9
start local 9 79: new java.io.UncheckedIOException
dup
aload 9
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 9 80: StackMap locals:
StackMap stack:
return
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 81 0 this Lcom/oracle/truffle/js/factory/processor/GenerateProxyProcessor;
0 81 1 typeElement Ljavax/lang/model/element/TypeElement;
1 81 2 nodeFactoryClassName Ljava/lang/String;
2 81 3 packageName Ljava/lang/String;
3 81 4 simpleClassName Ljava/lang/String;
4 81 5 qualifiedClassName Ljava/lang/String;
5 81 6 generatedByClassName Ljava/lang/String;
6 81 7 proxyHandlerClassName Ljava/lang/String;
7 81 8 methodClassName Ljava/lang/String;
8 78 9 jfo Ljavax/tools/JavaFileObject;
10 74 12 outputStream Ljava/io/OutputStream;
11 69 13 ps Ljava/io/PrintStream;
27 67 14 publicMethods Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
30 66 15 i I
32 64 16 method Ljavax/lang/model/element/ExecutableElement;
33 64 17 arity I
38 64 18 paramList Ljava/lang/String;
41 64 19 paramTypes Ljava/lang/String;
52 64 20 args Ljava/lang/String;
79 80 9 e Ljava/io/IOException;
Exception table:
from to target type
11 67 68 any
10 70 71 any
9 75 75 any
7 78 78 Class java.io.IOException
MethodParameters:
Name Flags
typeElement
private static java.lang.String cast(javax.lang.model.type.TypeMirror);
descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
ldc "java.lang.Object"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
ldc ""
goto 2
StackMap locals:
StackMap stack:
1: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
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;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 returnType Ljavax/lang/model/type/TypeMirror;
MethodParameters:
Name Flags
returnType
private static java.lang.String lambda$0(javax.lang.model.element.ExecutableElement, int, int);
descriptor: (Ljavax/lang/model/element/ExecutableElement;II)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 2 0: aload 0
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
astore 3
start local 3 1: aload 0
invokeinterface javax.lang.model.element.ExecutableElement.isVarArgs:()Z
ifeq 3
iload 2
iload 1
iconst_1
isub
if_icmpne 3
2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 3
checkcast javax.lang.model.type.ArrayType
invokeinterface javax.lang.model.type.ArrayType.getComponentType:()Ljavax/lang/model/type/TypeMirror;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "... "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "arg"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
3: StackMap locals: javax.lang.model.type.TypeMirror
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "arg"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 ai I
1 4 3 type Ljavax/lang/model/type/TypeMirror;
private static java.lang.String lambda$1(javax.lang.model.element.ExecutableElement, int);
descriptor: (Ljavax/lang/model/element/ExecutableElement;I)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
invokestatic com.oracle.truffle.js.factory.processor.GenerateProxyProcessor.getClassLiteralString:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 ai I
private static java.lang.String lambda$2(int);
descriptor: (I)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "arg"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ai I
}
SourceFile: "GenerateProxyProcessor.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles