public class DynamicHelloWorld extends java.lang.Object implements java.io.Serializable:
  public void <init>():
                    ALOAD_0     // LDynamicHelloWorld; 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     // Ljava/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;   (line 21)
    |               ALOAD_0
    |               INVOKEVIRTUAL Trace.ajc$before$Trace$1$26352be2 (Ljava/lang/Object;)V
    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
    |               ICONST_3
    |               ANEWARRAY java.lang.Object
    |               ASTORE 6
    |               ALOAD 6
    |               ICONST_0
    |               ALOAD_0
    |               AASTORE
    |               ALOAD 6
    |               ICONST_1
    |               ALOAD_3
    |               AASTORE
    |               ALOAD 6
    |               ICONST_2
    |               ALOAD 4
    |               AASTORE
    |               NEW DynamicHelloWorld$AjcClosure3
    |               DUP
    |               ALOAD 6
    |               INVOKESPECIAL DynamicHelloWorld$AjcClosure3.<init> ([Ljava/lang/Object;)V
    |               INVOKEVIRTUAL Trace.ajc$around$Trace$2$a986034c (Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
    |               CHECKCAST java.lang.String
    |               DUP
    |               ASTORE 7
    |               DUP
    |               ASTORE 8
    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
    |               ALOAD_0
    |               ALOAD 8
    |               INVOKEVIRTUAL MyTrace.ajc$afterReturning$MyTrace$1$2b31dfa3 (Ljava/lang/Object;Ljava/lang/Object;)V
    |               ALOAD 7
    |               ARETURN
    method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
  end String doit(String, java.util.List)

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

  static final String doit_aroundBody2(DynamicHelloWorld, String, java.util.List):
                    INVOKESTATIC MyTrace.aspectOf ()LMyTrace;   (line 21)
                    ALOAD_0
                    ICONST_3
                    ANEWARRAY java.lang.Object
                    ASTORE_3
                    ALOAD_3
                    ICONST_0
                    ALOAD_0
                    AASTORE
                    ALOAD_3
                    ICONST_1
                    ALOAD_1
                    AASTORE
                    ALOAD_3
                    ICONST_2
                    ALOAD_2
                    AASTORE
                    NEW DynamicHelloWorld$AjcClosure1
                    DUP
                    ALOAD_3
                    INVOKESPECIAL DynamicHelloWorld$AjcClosure1.<init> ([Ljava/lang/Object;)V
                    INVOKEVIRTUAL Trace.ajc$around$Trace$3$26352be2 (Ljava/lang/Object;Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
                    CHECKCAST java.lang.String
                    ARETURN
  end static final String doit_aroundBody2(DynamicHelloWorld, String, java.util.List)
end public class DynamicHelloWorld

public class DynamicHelloWorld$AjcClosure1 extends org.aspectj.runtime.internal.AroundClosure:
  public void <init>(Object[]):
                    ALOAD_0
                    ALOAD_1
                    INVOKESPECIAL org.aspectj.runtime.internal.AroundClosure.<init> ([Ljava/lang/Object;)V
                    RETURN
  end public void <init>(Object[])

  public Object run(Object[]):
                    ALOAD_0
                    GETFIELD org.aspectj.runtime.internal.AroundClosure.state [Ljava/lang/Object;
                    ASTORE_2
                    ALOAD_1
                    ICONST_0
                    AALOAD
                    CHECKCAST DynamicHelloWorld
                    ALOAD_2
                    ICONST_1
                    AALOAD
                    CHECKCAST java.lang.String
                    ALOAD_2
                    ICONST_2
                    AALOAD
                    CHECKCAST java.util.List
                    INVOKESTATIC DynamicHelloWorld.doit_aroundBody0 (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
                    ARETURN
  end public Object run(Object[])
end public class DynamicHelloWorld$AjcClosure1

public class DynamicHelloWorld$AjcClosure3 extends org.aspectj.runtime.internal.AroundClosure:
  public void <init>(Object[]):
                    ALOAD_0
                    ALOAD_1
                    INVOKESPECIAL org.aspectj.runtime.internal.AroundClosure.<init> ([Ljava/lang/Object;)V
                    RETURN
  end public void <init>(Object[])

  public Object run(Object[]):
                    ALOAD_0
                    GETFIELD org.aspectj.runtime.internal.AroundClosure.state [Ljava/lang/Object;
                    ASTORE_2
                    ALOAD_2
                    ICONST_0
                    AALOAD
                    CHECKCAST DynamicHelloWorld
                    ALOAD_2
                    ICONST_1
                    AALOAD
                    CHECKCAST java.lang.String
                    ALOAD_2
                    ICONST_2
                    AALOAD
                    CHECKCAST java.util.List
                    INVOKESTATIC DynamicHelloWorld.doit_aroundBody2 (LDynamicHelloWorld;Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
                    ARETURN
  end public Object run(Object[])
end public class DynamicHelloWorld$AjcClosure3
