package test; import java.util.*; import org.objectweb.asm.*; public class TreeNodeOrgDump implements Opcodes { public static byte[] dump () throws Exception { ClassWriter cw = new ClassWriter(0); FieldVisitor fv; MethodVisitor mv; AnnotationVisitor av0; cw.visit(V1_3, ACC_PUBLIC, "TreeNode", null, "java/lang/Object", new String[] { "groovy/lang/GroovyObject" }); cw.visitSource("TreeNode.groovy", null); { fv = cw.visitField(ACC_PUBLIC + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$ownClass", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE, "left", "Ljava/lang/Object;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE, "right", "Ljava/lang/Object;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE, "item", "I", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$const$0", "Ljava/lang/Integer;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$const$1", "Ljava/lang/Integer;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$const$2", "Ljava/lang/Integer;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$const$3", "Ljava/lang/Integer;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC + ACC_SYNTHETIC, "$const$4", "Ljava/lang/Integer;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PUBLIC + ACC_STATIC, "$staticMetaClass", "Ljava/lang/ref/SoftReference;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_TRANSIENT, "metaClass", "Lgroovy/lang/MetaClass;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PUBLIC + ACC_STATIC, "__timeStamp", "Ljava/lang/Long;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PUBLIC + ACC_STATIC, "__timeStamp__239_neverHappen1216335190359", "Ljava/lang/Long;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$TreeNode", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$java$lang$Class", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$java$lang$Long", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$groovy$lang$MetaClass", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$java$lang$Integer", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$class$java$lang$System", "Ljava/lang/Class;", null, null); fv.visitEnd(); } { fv = cw.visitField(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$callSiteArray", "Ljava/lang/ref/SoftReference;", null, null); fv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(I)V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); Label l2 = new Label(); mv.visitLabel(l2); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 2); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "$getStaticMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$groovy$lang$MetaClass", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "groovy/lang/MetaClass"); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(POP); Label l3 = new Label(); mv.visitLabel(l3); mv.visitLineNumber(14, l3); mv.visitVarInsn(ILOAD, 1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "intUnbox", "(Ljava/lang/Object;)I"); mv.visitFieldInsn(PUTFIELD, "TreeNode", "item", "I"); mv.visitInsn(POP); Label l4 = new Label(); mv.visitLabel(l4); mv.visitInsn(RETURN); Label l5 = new Label(); mv.visitJumpInsn(GOTO, l5); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l5); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l2, l4, 0); mv.visitLocalVariable("item", "I", null, l2, l4, 1); mv.visitMaxs(3, 3); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;I)V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); Label l2 = new Label(); mv.visitLabel(l2); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 4); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "$getStaticMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$groovy$lang$MetaClass", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "groovy/lang/MetaClass"); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(POP); Label l3 = new Label(); mv.visitLabel(l3); mv.visitLineNumber(30, l3); mv.visitVarInsn(ALOAD, 1); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitFieldInsn(PUTFIELD, "TreeNode", "left", "Ljava/lang/Object;"); mv.visitInsn(POP); Label l4 = new Label(); mv.visitLabel(l4); mv.visitLineNumber(31, l4); mv.visitVarInsn(ALOAD, 2); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitFieldInsn(PUTFIELD, "TreeNode", "right", "Ljava/lang/Object;"); mv.visitInsn(POP); Label l5 = new Label(); mv.visitLabel(l5); mv.visitLineNumber(32, l5); mv.visitVarInsn(ILOAD, 3); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(SWAP); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "intUnbox", "(Ljava/lang/Object;)I"); mv.visitFieldInsn(PUTFIELD, "TreeNode", "item", "I"); mv.visitInsn(POP); Label l6 = new Label(); mv.visitLabel(l6); mv.visitInsn(RETURN); Label l7 = new Label(); mv.visitJumpInsn(GOTO, l7); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l7); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l2, l6, 0); mv.visitLocalVariable("left", "Ljava/lang/Object;", null, l2, l6, 1); mv.visitLocalVariable("right", "Ljava/lang/Object;", null, l2, l6, 2); mv.visitLocalVariable("item", "I", null, l2, l6, 3); mv.visitMaxs(3, 5); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC, "bottomUpTree", "(II)Ljava/lang/Object;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 2); Label l2 = new Label(); mv.visitLabel(l2); mv.visitLineNumber(18, l2); mv.visitVarInsn(ILOAD, 1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "compareGreaterThan", "(Ljava/lang/Object;Ljava/lang/Object;)Z"); Label l3 = new Label(); mv.visitJumpInsn(IFEQ, l3); Label l4 = new Label(); mv.visitLabel(l4); mv.visitLineNumber(19, l4); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(0)); mv.visitInsn(AALOAD); mv.visitVarInsn(ILOAD, 1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "intUnbox", "(Ljava/lang/Object;)I"); mv.visitVarInsn(ISTORE, 1); mv.visitInsn(POP); Label l5 = new Label(); mv.visitLabel(l5); mv.visitLineNumber(20, l5); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(1)); mv.visitInsn(AALOAD); mv.visitVarInsn(ILOAD, 0); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$2", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 3); Label l6 = new Label(); mv.visitLabel(l6); mv.visitLineNumber(21, l6); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(2)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); Label l7 = new Label(); mv.visitLabel(l7); mv.visitLineNumber(21, l7); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(3)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); Label l8 = new Label(); mv.visitLabel(l8); mv.visitLineNumber(21, l8); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(4)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 3); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ILOAD, 1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); Label l9 = new Label(); mv.visitLabel(l9); mv.visitLineNumber(22, l9); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(5)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitVarInsn(ALOAD, 3); mv.visitVarInsn(ILOAD, 1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ILOAD, 0); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callConstructor", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(ARETURN); Label l10 = new Label(); mv.visitLabel(l10); Label l11 = new Label(); mv.visitJumpInsn(GOTO, l11); mv.visitLabel(l3); mv.visitLineNumber(25, l3); mv.visitVarInsn(ALOAD, 2); mv.visitLdcInsn(new Integer(6)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitVarInsn(ILOAD, 0); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callConstructor", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(ARETURN); mv.visitLabel(l11); Label l12 = new Label(); mv.visitJumpInsn(GOTO, l12); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l12); mv.visitInsn(NOP); mv.visitLocalVariable("item", "I", null, l0, l11, 0); mv.visitLocalVariable("depth", "I", null, l0, l11, 1); mv.visitLocalVariable("item2", "Ljava/lang/Integer;", null, l6, l10, 3); mv.visitMaxs(7, 5); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC, "itemCheck", "()I", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 1); Label l2 = new Label(); mv.visitLabel(l2); mv.visitLineNumber(37, l2); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "left", "Ljava/lang/Object;"); mv.visitInsn(ACONST_NULL); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "compareEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z"); Label l3 = new Label(); mv.visitJumpInsn(IFEQ, l3); Label l4 = new Label(); mv.visitLabel(l4); mv.visitLineNumber(37, l4); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "item", "I"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "intUnbox", "(Ljava/lang/Object;)I"); mv.visitInsn(IRETURN); Label l5 = new Label(); mv.visitJumpInsn(GOTO, l5); mv.visitLabel(l3); mv.visitLineNumber(38, l3); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(7)); mv.visitInsn(AALOAD); Label l6 = new Label(); mv.visitLabel(l6); mv.visitLineNumber(38, l6); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(8)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "item", "I"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "box", "(I)Ljava/lang/Object;"); Label l7 = new Label(); mv.visitLabel(l7); mv.visitLineNumber(38, l7); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(9)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "left", "Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); Label l8 = new Label(); mv.visitLabel(l8); mv.visitLineNumber(38, l8); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(10)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "right", "Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation", "intUnbox", "(Ljava/lang/Object;)I"); mv.visitInsn(IRETURN); mv.visitLabel(l5); Label l9 = new Label(); mv.visitJumpInsn(GOTO, l9); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l9); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l5, 0); mv.visitMaxs(5, 2); mv.visitEnd(); } dump_main(cw); { mv = cw.visitMethod(ACC_PROTECTED + ACC_SYNTHETIC, "$getStaticMetaClass", "()Lgroovy/lang/MetaClass;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 1); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$staticMetaClass", "Ljava/lang/ref/SoftReference;"); mv.visitVarInsn(ASTORE, 1); mv.visitVarInsn(ALOAD, 1); Label l2 = new Label(); mv.visitJumpInsn(IFNULL, l2); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/ref/SoftReference", "get", "()Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "groovy/lang/MetaClass"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 1); Label l3 = new Label(); mv.visitJumpInsn(IFNONNULL, l3); mv.visitLabel(l2); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/InvokerHelper", "getMetaClass", "(Ljava/lang/Class;)Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ASTORE, 1); mv.visitTypeInsn(NEW, "java/lang/ref/SoftReference"); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/ref/SoftReference", "<init>", "(Ljava/lang/Object;)V"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$staticMetaClass", "Ljava/lang/ref/SoftReference;"); mv.visitLabel(l3); mv.visitVarInsn(ALOAD, 1); mv.visitInsn(ARETURN); mv.visitInsn(RETURN); Label l4 = new Label(); mv.visitLabel(l4); Label l5 = new Label(); mv.visitJumpInsn(GOTO, l5); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l5); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l4, 0); mv.visitMaxs(3, 2); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "getMetaClass", "()Lgroovy/lang/MetaClass;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 1); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(DUP); Label l2 = new Label(); mv.visitJumpInsn(IFNULL, l2); mv.visitInsn(ARETURN); mv.visitLabel(l2); mv.visitInsn(POP); mv.visitVarInsn(ALOAD, 0); mv.visitInsn(DUP); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "$getStaticMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(ARETURN); mv.visitInsn(RETURN); Label l3 = new Label(); mv.visitLabel(l3); Label l4 = new Label(); mv.visitJumpInsn(GOTO, l4); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l4); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l3, 0); mv.visitMaxs(2, 2); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "setMetaClass", "(Lgroovy/lang/MetaClass;)V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 2); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitFieldInsn(PUTFIELD, "TreeNode", "metaClass", "Lgroovy/lang/MetaClass;"); mv.visitInsn(RETURN); Label l2 = new Label(); mv.visitLabel(l2); mv.visitInsn(RETURN); Label l3 = new Label(); mv.visitJumpInsn(GOTO, l3); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l3); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l2, 0); mv.visitLocalVariable("mc", "Lgroovy/lang/MetaClass;", null, l0, l2, 1); mv.visitMaxs(2, 3); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "invokeMethod", "(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 3); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "getMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitVarInsn(ALOAD, 2); mv.visitMethodInsn(INVOKEINTERFACE, "groovy/lang/MetaObjectProtocol", "invokeMethod", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(ARETURN); mv.visitInsn(RETURN); Label l2 = new Label(); mv.visitLabel(l2); Label l3 = new Label(); mv.visitJumpInsn(GOTO, l3); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l3); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l2, 0); mv.visitLocalVariable("method", "Ljava/lang/String;", null, l0, l2, 1); mv.visitLocalVariable("arguments", "Ljava/lang/Object;", null, l0, l2, 2); mv.visitMaxs(4, 4); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "getProperty", "(Ljava/lang/String;)Ljava/lang/Object;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 2); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "getMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKEINTERFACE, "groovy/lang/MetaClass", "getProperty", "(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;"); mv.visitInsn(ARETURN); mv.visitInsn(RETURN); Label l2 = new Label(); mv.visitLabel(l2); Label l3 = new Label(); mv.visitJumpInsn(GOTO, l3); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l3); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l2, 0); mv.visitLocalVariable("property", "Ljava/lang/String;", null, l0, l2, 1); mv.visitMaxs(3, 3); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "setProperty", "(Ljava/lang/String;Ljava/lang/Object;)V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 3); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKEVIRTUAL, "TreeNode", "getMetaClass", "()Lgroovy/lang/MetaClass;"); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitVarInsn(ALOAD, 2); mv.visitMethodInsn(INVOKEINTERFACE, "groovy/lang/MetaClass", "setProperty", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V"); mv.visitInsn(RETURN); mv.visitInsn(RETURN); Label l2 = new Label(); mv.visitLabel(l2); mv.visitInsn(RETURN); Label l3 = new Label(); mv.visitJumpInsn(GOTO, l3); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l3); mv.visitInsn(NOP); mv.visitLocalVariable("this", "LTreeNode;", null, l0, l2, 0); mv.visitLocalVariable("property", "Ljava/lang/String;", null, l0, l2, 1); mv.visitLocalVariable("value", "Ljava/lang/Object;", null, l0, l2, 2); mv.visitMaxs(4, 4); mv.visitEnd(); } { mv = cw.visitMethod(ACC_STATIC, "<clinit>", "()V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Class", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Class"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Class"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$ownClass", "Ljava/lang/Class;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Integer"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(0)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>", "(I)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Integer"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(1)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>", "(I)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Integer"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(2)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>", "(I)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$const$2", "Ljava/lang/Integer;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Integer"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(10)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>", "(I)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$const$3", "Ljava/lang/Integer;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Integer"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(4)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>", "(I)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$const$4", "Ljava/lang/Integer;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Long"); mv.visitInsn(DUP); mv.visitLdcInsn(new Long(1216335190359L)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Long", "<init>", "(J)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Long"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "__timeStamp", "Ljava/lang/Long;"); mv.visitInsn(POP); mv.visitTypeInsn(NEW, "java/lang/Long"); mv.visitInsn(DUP); mv.visitLdcInsn(new Long(0L)); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Long", "<init>", "(J)V"); mv.visitInsn(DUP); mv.visitTypeInsn(CHECKCAST, "java/lang/Long"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "__timeStamp__239_neverHappen1216335190359", "Ljava/lang/Long;"); mv.visitInsn(POP); mv.visitInsn(RETURN); mv.visitInsn(RETURN); Label l2 = new Label(); mv.visitJumpInsn(GOTO, l2); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l2); mv.visitInsn(NOP); mv.visitMaxs(4, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "this$2$bottomUpTree", "(II)Ljava/lang/Object;", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ILOAD, 1); mv.visitVarInsn(ILOAD, 2); mv.visitMethodInsn(INVOKESPECIAL, "TreeNode", "bottomUpTree", "(II)Ljava/lang/Object;"); mv.visitInsn(ARETURN); mv.visitMaxs(3, 3); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$wait", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "wait", "()V"); mv.visitInsn(RETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$toString", "()Ljava/lang/String;", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "toString", "()Ljava/lang/String;"); mv.visitInsn(ARETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$wait", "(J)V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(LLOAD, 1); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "wait", "(J)V"); mv.visitInsn(RETURN); mv.visitMaxs(3, 3); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$wait", "(JI)V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(LLOAD, 1); mv.visitVarInsn(ILOAD, 3); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "wait", "(JI)V"); mv.visitInsn(RETURN); mv.visitMaxs(4, 4); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$notify", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "notify", "()V"); mv.visitInsn(RETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$notifyAll", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "notifyAll", "()V"); mv.visitInsn(RETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$getClass", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;"); mv.visitInsn(ARETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$equals", "(Ljava/lang/Object;)Z", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "equals", "(Ljava/lang/Object;)Z"); mv.visitInsn(IRETURN); mv.visitMaxs(2, 2); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$clone", "()Ljava/lang/Object;", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "clone", "()Ljava/lang/Object;"); mv.visitInsn(ARETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$hashCode", "()I", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "hashCode", "()I"); mv.visitInsn(IRETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PUBLIC + ACC_SYNTHETIC, "super$1$finalize", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "finalize", "()V"); mv.visitInsn(RETURN); mv.visitMaxs(1, 1); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$TreeNode", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$TreeNode", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("TreeNode"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$TreeNode", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$java$lang$Class", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$java$lang$Class", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("java.lang.Class"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$java$lang$Class", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$java$lang$Long", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$java$lang$Long", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("java.lang.Long"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$java$lang$Long", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$groovy$lang$MetaClass", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$groovy$lang$MetaClass", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("groovy.lang.MetaClass"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$groovy$lang$MetaClass", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$java$lang$Integer", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$java$lang$Integer", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("java.lang.Integer"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$java$lang$Integer", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$get$$class$java$lang$System", "()Ljava/lang/Class;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$class$java$lang$System", "Ljava/lang/Class;"); mv.visitInsn(DUP); Label l0 = new Label(); mv.visitJumpInsn(IFNONNULL, l0); mv.visitInsn(POP); mv.visitLdcInsn("java.lang.System"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "class$", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(DUP); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$class$java$lang$System", "Ljava/lang/Class;"); mv.visitLabel(l0); mv.visitInsn(ARETURN); mv.visitMaxs(2, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_STATIC + ACC_SYNTHETIC, "class$", "(Ljava/lang/String;)Ljava/lang/Class;", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "java/lang/ClassNotFoundException"); mv.visitLabel(l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESTATIC, "java/lang/Class", "forName", "(Ljava/lang/String;)Ljava/lang/Class;"); mv.visitInsn(ARETURN); mv.visitLabel(l1); mv.visitVarInsn(ASTORE, 1); mv.visitTypeInsn(NEW, "java/lang/NoClassDefFoundError"); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/ClassNotFoundException", "getMessage", "()Ljava/lang/String;"); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/NoClassDefFoundError", "<init>", "(Ljava/lang/String;)V"); mv.visitInsn(ATHROW); mv.visitMaxs(3, 2); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$createCallSiteArray", "()Lorg/codehaus/groovy/runtime/callsite/CallSiteArray;", null, null); mv.visitCode(); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/callsite/CallSiteArray"); mv.visitInsn(DUP); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$ownClass", "Ljava/lang/Class;"); mv.visitLdcInsn(new Integer(40)); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(0)); mv.visitLdcInsn("minus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(1)); mv.visitLdcInsn("multiply"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(2)); mv.visitLdcInsn("<$constructor$>"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(3)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(4)); mv.visitLdcInsn("minus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(5)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(6)); mv.visitLdcInsn("<$constructor$>"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(7)); mv.visitLdcInsn("minus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(8)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(9)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(10)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(11)); mv.visitLdcInsn("currentTimeMillis"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(12)); mv.visitLdcInsn("length"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(13)); mv.visitLdcInsn("toInteger"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(14)); mv.visitLdcInsn("getAt"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(15)); mv.visitLdcInsn("max"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(16)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(17)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(18)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(19)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(20)); mv.visitLdcInsn("println"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(21)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(22)); mv.visitLdcInsn("leftShift"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(23)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(24)); mv.visitLdcInsn("minus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(25)); mv.visitLdcInsn("iterator"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(26)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(27)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(28)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(29)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(30)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(31)); mv.visitLdcInsn("bottomUpTree"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(32)); mv.visitLdcInsn("println"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(33)); mv.visitLdcInsn("multiply"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(34)); mv.visitLdcInsn("plus"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(35)); mv.visitLdcInsn("currentTimeMillis"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(36)); mv.visitLdcInsn("println"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(37)); mv.visitLdcInsn("itemCheck"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(38)); mv.visitLdcInsn("println"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitLdcInsn(new Integer(39)); mv.visitLdcInsn("minus"); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/callsite/CallSiteArray", "<init>", "(Ljava/lang/Class;[Ljava/lang/String;)V"); mv.visitInsn(ARETURN); mv.visitMaxs(7, 0); mv.visitEnd(); } { mv = cw.visitMethod(ACC_PRIVATE + ACC_STATIC + ACC_SYNTHETIC, "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;", null, null); mv.visitCode(); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$callSiteArray", "Ljava/lang/ref/SoftReference;"); Label l0 = new Label(); mv.visitJumpInsn(IFNULL, l0); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$callSiteArray", "Ljava/lang/ref/SoftReference;"); mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/ref/SoftReference", "get", "()Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "org/codehaus/groovy/runtime/callsite/CallSiteArray"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 0); Label l1 = new Label(); mv.visitJumpInsn(IFNONNULL, l1); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$createCallSiteArray", "()Lorg/codehaus/groovy/runtime/callsite/CallSiteArray;"); mv.visitVarInsn(ASTORE, 0); mv.visitTypeInsn(NEW, "java/lang/ref/SoftReference"); mv.visitInsn(DUP); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/ref/SoftReference", "<init>", "(Ljava/lang/Object;)V"); mv.visitFieldInsn(PUTSTATIC, "TreeNode", "$callSiteArray", "Ljava/lang/ref/SoftReference;"); mv.visitLabel(l1); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETFIELD, "org/codehaus/groovy/runtime/callsite/CallSiteArray", "array", "[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitInsn(ARETURN); mv.visitMaxs(3, 1); mv.visitEnd(); } cw.visitEnd(); return cw.toByteArray(); } private static void dump_main(ClassWriter cw) { MethodVisitor mv; mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC + ACC_VARARGS, "main", "([Ljava/lang/String;)V", null, null); mv.visitCode(); Label l0 = new Label(); Label l1 = new Label(); mv.visitTryCatchBlock(l0, l1, l1, "groovy/lang/GroovyRuntimeException"); mv.visitLabel(l0); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$getCallSiteArray", "()[Lorg/codehaus/groovy/runtime/callsite/CallSite;"); mv.visitVarInsn(ASTORE, 1); Label l2 = new Label(); mv.visitLabel(l2); mv.visitLineNumber(42, l2); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(11)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$System", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); //mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Long", "()Ljava/lang/Class;"); //mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); //mv.visitTypeInsn(CHECKCAST, "java/lang/Long"); //mv.visitVarInsn(ASTORE, 2); mv.visitMethodInsn(INVOKEINTERFACE, "java/lang/Long", "longValue", "()J"); mv.visitVarInsn(LSTORE, 2); // J need 2,3 Label l3 = new Label(); mv.visitLabel(l3); mv.visitLineNumber(43, l3); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(12)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callGetProperty", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "compareEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z"); Label l4 = new Label(); mv.visitJumpInsn(IFEQ, l4); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$3", "Ljava/lang/Integer;"); Label l5 = new Label(); mv.visitJumpInsn(GOTO, l5); mv.visitLabel(l4); mv.visitLineNumber(43, l4); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(13)); mv.visitInsn(AALOAD); Label l6 = new Label(); mv.visitLabel(l6); mv.visitLineNumber(43, l6); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(14)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 0); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitLabel(l5); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 3); Label l7 = new Label(); mv.visitLabel(l7); mv.visitLineNumber(44, l7); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$4", "Ljava/lang/Integer;"); mv.visitVarInsn(ASTORE, 4); Label l8 = new Label(); mv.visitLabel(l8); mv.visitLineNumber(45, l8); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(15)); mv.visitInsn(AALOAD); mv.visitInsn(ICONST_2); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); Label l9 = new Label(); mv.visitLabel(l9); mv.visitLineNumber(45, l9); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(16)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 4); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$2", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitVarInsn(ALOAD, 3); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "createList", "([Ljava/lang/Object;)Ljava/util/List;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 5); Label l10 = new Label(); mv.visitLabel(l10); mv.visitLineNumber(46, l10); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(17)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 5); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 6); Label l11 = new Label(); mv.visitLabel(l11); mv.visitLineNumber(48, l11); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(18)); mv.visitInsn(AALOAD); Label l12 = new Label(); mv.visitLabel(l12); mv.visitLineNumber(48, l12); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(19)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitVarInsn(ALOAD, 6); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 7); Label l13 = new Label(); mv.visitLabel(l13); mv.visitLineNumber(49, l13); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(20)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitVarInsn(ALOAD, 6); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitVarInsn(ALOAD, 7); mv.visitInsn(AASTORE); mv.visitInsn(ICONST_3); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitLdcInsn("stretch tree of depth "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitLdcInsn("\u0009 check: "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitLdcInsn(""); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(POP); Label l14 = new Label(); mv.visitLabel(l14); mv.visitLineNumber(51, l14); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(21)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitVarInsn(ALOAD, 5); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ASTORE, 8); Label l15 = new Label(); mv.visitLabel(l15); mv.visitLineNumber(53, l15); mv.visitVarInsn(ALOAD, 4); mv.visitVarInsn(ASTORE, 9); Label l16 = new Label(); mv.visitLabel(l16); mv.visitLineNumber(54, l16); mv.visitVarInsn(ALOAD, 9); mv.visitVarInsn(ALOAD, 5); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "compareLessThanEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z"); Label l17 = new Label(); mv.visitJumpInsn(IFEQ, l17); Label l18 = new Label(); mv.visitLabel(l18); mv.visitLineNumber(55, l18); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(22)); mv.visitInsn(AALOAD); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); Label l19 = new Label(); mv.visitLabel(l19); mv.visitLineNumber(55, l19); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(23)); mv.visitInsn(AALOAD); Label l20 = new Label(); mv.visitLabel(l20); mv.visitLineNumber(55, l20); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(24)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 5); mv.visitVarInsn(ALOAD, 9); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ALOAD, 4); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Integer", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Integer"); mv.visitVarInsn(ASTORE, 10); Label l21 = new Label(); mv.visitLabel(l21); mv.visitLineNumber(56, l21); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$0", "Ljava/lang/Integer;"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 7); mv.visitInsn(POP); Label l22 = new Label(); mv.visitLabel(l22); mv.visitLineNumber(57, l22); mv.visitInsn(ACONST_NULL); mv.visitVarInsn(ASTORE, 11); Label l23 = new Label(); mv.visitLabel(l23); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(25)); mv.visitInsn(AALOAD); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$1", "Ljava/lang/Integer;"); mv.visitVarInsn(ALOAD, 10); mv.visitInsn(ICONST_1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "createRange", "(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ASTORE, 12); Label l24 = new Label(); mv.visitLabel(l24); mv.visitVarInsn(ALOAD, 12); mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "hasNext", "()Z"); Label l25 = new Label(); mv.visitJumpInsn(IFEQ, l25); mv.visitVarInsn(ALOAD, 12); mv.visitMethodInsn(INVOKEINTERFACE, "java/util/Iterator", "next", "()Ljava/lang/Object;"); mv.visitVarInsn(ASTORE, 11); Label l26 = new Label(); mv.visitLabel(l26); mv.visitLineNumber(58, l26); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(26)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 7); Label l27 = new Label(); mv.visitLabel(l27); mv.visitLineNumber(58, l27); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(27)); mv.visitInsn(AALOAD); Label l28 = new Label(); mv.visitLabel(l28); mv.visitLineNumber(58, l28); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(28)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitVarInsn(ALOAD, 11); mv.visitVarInsn(ALOAD, 9); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 7); mv.visitInsn(POP); Label l29 = new Label(); mv.visitLabel(l29); mv.visitLineNumber(59, l29); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(29)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 7); Label l30 = new Label(); mv.visitLabel(l30); mv.visitLineNumber(59, l30); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(30)); mv.visitInsn(AALOAD); Label l31 = new Label(); mv.visitLabel(l31); mv.visitLineNumber(59, l31); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(31)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitVarInsn(ALOAD, 11); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unaryMinus", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitVarInsn(ALOAD, 9); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 7); mv.visitInsn(POP); mv.visitJumpInsn(GOTO, l24); mv.visitLabel(l25); mv.visitLineNumber(62, l25); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(32)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); mv.visitInsn(ICONST_3); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); Label l32 = new Label(); mv.visitLabel(l32); mv.visitLineNumber(62, l32); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(33)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 10); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$2", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitVarInsn(ALOAD, 9); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitVarInsn(ALOAD, 7); mv.visitInsn(AASTORE); mv.visitInsn(ICONST_4); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitLdcInsn(""); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitLdcInsn("\u0009 trees of depth "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitLdcInsn("\u0009 check: "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_3); mv.visitLdcInsn(""); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(POP); Label l33 = new Label(); mv.visitLabel(l33); mv.visitLineNumber(63, l33); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(34)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 9); mv.visitFieldInsn(GETSTATIC, "TreeNode", "$const$2", "Ljava/lang/Integer;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(DUP); mv.visitVarInsn(ASTORE, 9); mv.visitInsn(POP); Label l34 = new Label(); mv.visitLabel(l34); mv.visitJumpInsn(GOTO, l16); mv.visitLabel(l17); mv.visitLineNumber(65, l17); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(35)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$System", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$java$lang$Long", "()Ljava/lang/Class;"); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "castToType", "(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;"); mv.visitTypeInsn(CHECKCAST, "java/lang/Long"); mv.visitVarInsn(ASTORE, 10); Label l35 = new Label(); mv.visitLabel(l35); mv.visitLineNumber(66, l35); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(36)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitVarInsn(ALOAD, 5); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); Label l36 = new Label(); mv.visitLabel(l36); mv.visitLineNumber(66, l36); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(37)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 8); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(AASTORE); mv.visitInsn(ICONST_3); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitLdcInsn("long lived tree of depth "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitLdcInsn("\u0009 check: "); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_2); mv.visitLdcInsn(""); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(POP); Label l37 = new Label(); mv.visitLabel(l37); mv.visitLineNumber(67, l37); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(38)); mv.visitInsn(AALOAD); mv.visitMethodInsn(INVOKESTATIC, "TreeNode", "$get$$class$TreeNode", "()Ljava/lang/Class;"); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); Label l38 = new Label(); mv.visitLabel(l38); mv.visitLineNumber(67, l38); mv.visitVarInsn(ALOAD, 1); mv.visitLdcInsn(new Integer(39)); mv.visitInsn(AALOAD); mv.visitVarInsn(ALOAD, 10); mv.visitVarInsn(ALOAD, 2); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "call", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(AASTORE); mv.visitInsn(ICONST_2); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); mv.visitInsn(DUP); mv.visitInsn(ICONST_0); mv.visitLdcInsn(""); mv.visitInsn(AASTORE); mv.visitInsn(DUP); mv.visitInsn(ICONST_1); mv.visitLdcInsn("ms"); mv.visitInsn(AASTORE); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); mv.visitMethodInsn(INVOKEINTERFACE, "org/codehaus/groovy/runtime/callsite/CallSite", "callStatic", "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"); mv.visitInsn(POP); mv.visitInsn(RETURN); Label l39 = new Label(); mv.visitLabel(l39); mv.visitInsn(RETURN); Label l40 = new Label(); mv.visitJumpInsn(GOTO, l40); mv.visitLabel(l1); mv.visitMethodInsn(INVOKESTATIC, "org/codehaus/groovy/runtime/ScriptBytecodeAdapter", "unwrap", "(Lgroovy/lang/GroovyRuntimeException;)Ljava/lang/Throwable;"); mv.visitInsn(ATHROW); mv.visitLabel(l40); mv.visitInsn(NOP); mv.visitLocalVariable("args", "[Ljava/lang/String;", null, l0, l39, 0); mv.visitLocalVariable("start", "Ljava/lang/Long;", null, l3, l39, 2); mv.visitLocalVariable("n", "Ljava/lang/Integer;", null, l7, l39, 3); mv.visitLocalVariable("minDepth", "Ljava/lang/Integer;", null, l8, l39, 4); mv.visitLocalVariable("maxDepth", "Ljava/lang/Integer;", null, l10, l39, 5); mv.visitLocalVariable("stretchDepth", "Ljava/lang/Integer;", null, l11, l39, 6); mv.visitLocalVariable("check", "Ljava/lang/Integer;", null, l13, l39, 7); mv.visitLocalVariable("longLivedTree", "Ljava/lang/Object;", null, l15, l39, 8); mv.visitLocalVariable("depth", "Ljava/lang/Integer;", null, l16, l39, 9); mv.visitLocalVariable("iterations", "Ljava/lang/Integer;", null, l21, l34, 10); mv.visitLocalVariable("i", "Ljava/lang/Object;", null, l23, l25, 11); mv.visitLocalVariable("stop", "Ljava/lang/Long;", null, l35, l39, 10); mv.visitMaxs(10, 13); mv.visitEnd(); } }