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[]):
    catch java.lang.UnsupportedOperationException -> E0
    |               NEW DynamicHelloWorld   (line 12)
    |               DUP
    |               INVOKESPECIAL DynamicHelloWorld.<init> ()V
    |               LDC "hello"
    |               GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
    |               INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
    |               POP
    |               GOTO L0
    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
                    INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                    INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                    INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
                    RETURN   (line 15)
                L0: NEW java.lang.RuntimeException   (line 17)
                    DUP
                    LDC "should have caught exception"
                    INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
                    ATHROW
  end public static void main(String[])

  String doit(String, java.util.List):
                    ALOAD_1
                    ASTORE_3
                    ALOAD_2
                    ASTORE 4
    method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
    |               ALOAD_0
    |               INVOKEVIRTUAL Trace.ajc$before$Trace$1$26352be2 (Ljava/lang/Object;)V
    |               ALOAD_0
    |               ALOAD_3
    |               ALOAD 4
    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
    |               ACONST_NULL
    |               INVOKESTATIC DynamicHelloWorld.doit_aroundBody3$advice (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;LTrace;Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
    |               CHECKCAST java.lang.String
    |               GOTO L0
    |           L0: DUP
    |               ASTORE 5
    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
    |               ALOAD_0
    |               ALOAD 5
    |               INVOKEVIRTUAL MyTrace.ajc$afterReturning$MyTrace$1$2b31dfa3 (Ljava/lang/Object;Ljava/lang/Object;)V
    |               ARETURN
    method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
  end String doit(String, java.util.List)

  private static final String doit_aroundBody0(DynamicHelloWorld, String, java.util.List):
                    ALOAD_2   (line 21)
                    ALOAD_1
                    INVOKEINTERFACE java.util.List.add (Ljava/lang/Object;)Z
                    POP
                    ALOAD_2   (line 22)
                    INVOKEVIRTUAL java.lang.Object.toString ()Ljava/lang/String;
                    ARETURN
  end private static final String doit_aroundBody0(DynamicHelloWorld, String, java.util.List)

  private static final Object doit_aroundBody1$advice(DynamicHelloWorld, String, java.util.List, Trace, Object, org.aspectj.runtime.internal.AroundClosure):
                    GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 17)
                    NEW java.lang.StringBuffer
                    DUP
                    LDC "start around(2): "
                    INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
                    ALOAD 4
                    INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                    INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                    INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
                    ALOAD 4   (line 18)
                    ALOAD 5
                    ASTORE 7
                    ASTORE 8
                    ALOAD 8
                    CHECKCAST DynamicHelloWorld
                    ALOAD_1
                    ALOAD_2
                    INVOKESTATIC DynamicHelloWorld.doit_aroundBody0 (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
                    ASTORE 6
                    GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 19)
                    NEW java.lang.StringBuffer
                    DUP
                    LDC "exiting around with(2): "
                    INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
                    ALOAD 6
                    INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                    INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                    INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
                    ALOAD 6   (line 20)
                    ARETURN
  end private static final Object doit_aroundBody1$advice(DynamicHelloWorld, String, java.util.List, Trace, Object, org.aspectj.runtime.internal.AroundClosure)

  private static final String doit_aroundBody2(DynamicHelloWorld, String, java.util.List):
                    ALOAD_0
                    ALOAD_1
                    ALOAD_2
                    INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
                    ALOAD_0
                    ACONST_NULL
                    INVOKESTATIC DynamicHelloWorld.doit_aroundBody1$advice (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;LTrace;Ljava/lang/Object;Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
                    CHECKCAST java.lang.String
                    ARETURN
  end private static final String doit_aroundBody2(DynamicHelloWorld, String, java.util.List)

  private static final Object doit_aroundBody3$advice(DynamicHelloWorld, String, java.util.List, Trace, org.aspectj.runtime.internal.AroundClosure):
                    LDC "Hi"   (line 9)
                    ASTORE 5
                    GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
                    NEW java.lang.StringBuffer
                    DUP
                    LDC "start around: "
                    INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
                    ALOAD 5
                    INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                    INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                    INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
                    ALOAD 4   (line 11)
                    ASTORE 7
                    ALOAD_0
                    ALOAD_1
                    ALOAD_2
                    INVOKESTATIC DynamicHelloWorld.doit_aroundBody2 (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
                    ASTORE 6
                    GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 12)
                    NEW java.lang.StringBuffer
                    DUP
                    LDC "exiting around with: "
                    INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
                    ALOAD 6
                    INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                    INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                    INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
                    ALOAD 6   (line 13)
                    ARETURN
  end private static final Object doit_aroundBody3$advice(DynamicHelloWorld, String, java.util.List, Trace, org.aspectj.runtime.internal.AroundClosure)
end public class DynamicHelloWorld
