; ; LeftBehind.j - contrived test to see how japhar reacts to ; stuff left on the stack after a method returns. .class public LeftBehind .super java/lang/Object .method public static test()I .limit stack 10 ; up to 10 items can be pushed ; push some ints. bipush 1 bipush 2 bipush 3 bipush 4 bipush 5 ; then push some strings. ldc "6th item" ldc "7th item" bipush 5 ; now push our return value bipush 9 ireturn .end method .method public static main([Ljava/lang/String;)V .limit stack 3 ; up to three items can be pushed ; we push a value onto the stack, and ; then check to see that only one item (the return ; value from the test() method) is on the stack on top ; of it. bipush 8 invokestatic LeftBehind/test()I pop ; get rid of the return value bipush 8 isub ifeq pass fail: ; push System.out onto the stack getstatic java/lang/System/out Ljava/io/PrintStream; ldc "FAILED:" invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V bipush 0 invokestatic java/lang/System/exit(I)V pass: ; push System.out onto the stack getstatic java/lang/System/out Ljava/io/PrintStream; ldc "PASSED:" invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V bipush 0 invokestatic java/lang/System/exit(I)V .end method