blob: 4745c2af0eccfb77b32ab809e6cbdd762feaa04a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
public class DynamicHelloWorld extends java.lang.Object implements java.io.Serializable:
public void <init>():
ALOAD_0 // DynamicHelloWorld this (line 8)
INVOKESPECIAL java.lang.Object.<init> ()V
constructor-execution(void DynamicHelloWorld.<init>())
| RETURN
constructor-execution(void DynamicHelloWorld.<init>())
end public void <init>()
public static void main(String[]):
method-execution(void DynamicHelloWorld.main(java.lang.String[]))
| GETSTATIC Aspect.ajc$cflowStack$0 Lorg/aspectj/runtime/internal/CFlowStack;
| INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.isValid ()Z
| IFEQ L0
| GETSTATIC Aspect.ajc$cflowStack$0 Lorg/aspectj/runtime/internal/CFlowStack;
| BIPUSH 0
| INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.get (I)Ljava/lang/Object;
| CHECKCAST java.util.ArrayList
| INVOKESTATIC Aspect.ajc_before_0 (Ljava/util/ArrayList;)V
| catch java.lang.UnsupportedOperationException -> E0
| | L0: NEW DynamicHelloWorld (line 12)
| | DUP
| | INVOKESPECIAL DynamicHelloWorld.<init> ()V
| | LDC "hello"
| | GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
| | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
| | | INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
| | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
| | POP
| | GOTO L1
| catch java.lang.UnsupportedOperationException -> E0
| E0: ASTORE_1 (line 13)
| GETSTATIC java.lang.System.out Ljava/io/PrintStream; (line 14)
| NEW java.lang.StringBuffer
| DUP
| LDC "expected and caught: "
| INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
| ALOAD_1 // java.lang.UnsupportedOperationException t
| method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
| | INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
| method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
| method-call(java.lang.String java.lang.StringBuffer.toString())
| | INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
| method-call(java.lang.String java.lang.StringBuffer.toString())
| method-call(void java.io.PrintStream.println(java.lang.String))
| | INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
| method-call(void java.io.PrintStream.println(java.lang.String))
| RETURN (line 15)
| L1: NEW java.lang.RuntimeException (line 17)
| DUP
| LDC "should have caught exception"
| INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
| ATHROW
method-execution(void DynamicHelloWorld.main(java.lang.String[]))
end public static void main(String[])
String doit(String, java.util.List):
method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
| ALOAD_2 // java.util.List l (line 21)
| ALOAD_1 // java.lang.String s
| ASTORE_3
| ASTORE 4
| method-call(boolean java.util.List.add(java.lang.Object))
| | BIPUSH 0
| | ISTORE 5
| | ALOAD 4
| | INSTANCEOF java.util.ArrayList
| | IFEQ L0
| | BIPUSH 1
| | ISTORE 5
| | BIPUSH 1
| | ANEWARRAY java.lang.Object
| | ASTORE 6
| | ALOAD 6
| | BIPUSH 0
| | ALOAD 4
| | AASTORE
| | GETSTATIC Aspect.ajc$cflowStack$0 Lorg/aspectj/runtime/internal/CFlowStack;
| | ALOAD 6
| | INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.push ([Ljava/lang/Object;)V
| | catch java.lang.Throwable -> E0
| | | L0: ALOAD 4
| | | ALOAD_3
| | | INVOKEINTERFACE java.util.List.add (Ljava/lang/Object;)Z
| | catch java.lang.Throwable -> E0
| | GOTO L2
| | E0: ASTORE 7
| | ILOAD 5
| | IFEQ L1
| | GETSTATIC Aspect.ajc$cflowStack$0 Lorg/aspectj/runtime/internal/CFlowStack;
| | INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.pop ()V
| | L1: ALOAD 7
| | ATHROW
| | L2: NOP
| | ILOAD 5
| | IFEQ L3
| | GETSTATIC Aspect.ajc$cflowStack$0 Lorg/aspectj/runtime/internal/CFlowStack;
| | INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.pop ()V
| | L3: NOP
| method-call(boolean java.util.List.add(java.lang.Object))
| POP
| ALOAD_2 // java.util.List l (line 22)
| method-call(java.lang.String java.lang.Object.toString())
| | INVOKEVIRTUAL java.lang.Object.toString ()Ljava/lang/String;
| method-call(java.lang.String java.lang.Object.toString())
| ARETURN
method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
end String doit(String, java.util.List)
end public class DynamicHelloWorld
|