--- /dev/null
+
+public class Foo {
+ int i=3;
+
+ // Need local variable table for this code to be OK and not lose the fact that this/etc are setup from
+ // instruction 0 to the end of the method
+ void foo(Bar bar) {
+ i = 33;
+
+ }
+ public static void main(String[] args) {
+ new Foo().foo(null);
+ }
+}
+
+class Bar {}
+
+aspect FooAspect {
+ before(): execution(* *(..)) {}
+}
--- /dev/null
+
+public class Foo2 {
+ int i=3;
+
+ // Need local variable table for this code to be OK and not lose the fact that this/etc are setup from
+ // instruction 0 to the end of the method
+ void foo(Bar bar) {
+ i = 33;
+ String s = "hello";
+ try {
+ String s2 = "hello2";
+ System.out.println(s2);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ public static void main(String[] args) {
+ new Foo2().foo(null);
+ }
+}
+
+class Bar {}
+
+aspect FooAspect {
+ before(): execution(* *(..)) {}
+}
--- /dev/null
+
+public class Foo3 {
+ int i=3;
+
+ // Need local variable table for this code to be OK and not lose the fact that this/etc are setup from
+ // instruction 0 to the end of the method
+ void foo(Bar bar) {
+ i = 33;
+ try {
+System.out.println("x");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ public static void main(String[] args) {
+ new Foo3().foo(null);
+ }
+}
+
+class Bar {}
+
+aspect FooAspect {
+ before(): execution(* *(..)) {}
+ before(): execution(* *(..)) {}
+}