Bytecode Analysis for script: fannkuch

        /*
 * The Computer Language Benchmarks Game
 * http://shootout.alioth.debian.org/
 *
 * contributed by Brian Schlining
 */

def n = 7
if (args.length > 0) {
    n = Integer.parseInt(args[0])
}
println("Pfannkuchen(" + n + ") = " + fannkuch(n))

def fannkuch(int n) {
    int check = 0
    int[] perm = new int[n]
    int[] perm1 = new int[n]
    int[] count = new int[n]
    int[] maxPerm = new int[n]
    int maxFlipsCount = 0
    int m = n - 1

    for (i in 0..<n) {
        perm1[i] = i
    }
    int r = n

    while (true) {
        // write-out the first 30 permutations
        if (check < 30){
            for (i in 0..<n) {
                print(perm1[i] + 1)
            }
            print("\n")
            check++
        }

        while (r != 1) {
            count[r - 1] = r
            r--
        }
        if (!(perm1[0] == 0 || perm1[m] == m)) {
            for (i in 0..<n) {
                perm[i] = perm1[i]
            }

            int flipsCount = 0
            int k

            while (!((k = perm[0]) == 0)) {
                int k2 = (k + 1) >> 1
                for (i in 0..<k2) {
                    int temp = perm[i]
                    perm[i] = perm[k - i]
                    perm[k - i] = temp
                }
                flipsCount++
            }

            if (flipsCount > maxFlipsCount) {
                maxFlipsCount = flipsCount
                for (i in 0..<n) {
                    maxPerm[i] = perm1[i]
                }
            }
        }

        while (true) {
            if (r == n) {
                return maxFlipsCount
            }
            int perm0 = perm1[0]
            int i = 0
            while (i < r) {
                int j = i + 1
                perm1[i] = perm1[j]
                i = j
            }
            perm1[r] = perm0

            count[r] = count[r] - 1
            if (count[r] > 0) {
                break
            }
            r++
        }
    }
}

      
Groovyc Indy Static
Lines Removed 70 64 0
Total Lines - Before 1221 700 0
Percentage of Lines Removed 5.7 9.1 Error

Benchmarks

For parameter: 1

Groovyc Indy Static
Benchmark Average - Before 414 475 N/A
Benchmark Average - After 412 474 N/A
Benchmark Std Dev - Before 8.35 8.44 N/A
Benchmark Std Dev - After 9.29 7.97 N/A

For parameter: 2

Groovyc Indy Static
Benchmark Average - Before 412 506 N/A
Benchmark Average - After 411 500 N/A
Benchmark Std Dev - Before 6.36 12.34 N/A
Benchmark Std Dev - After 6.63 8.89 N/A

For parameter: 3

Groovyc Indy Static
Benchmark Average - Before 416 505 N/A
Benchmark Average - After 412 506 N/A
Benchmark Std Dev - Before 9.74 10.66 N/A
Benchmark Std Dev - After 9.33 10.68 N/A

BEFORE

Groovyc (Legacy)

          Compiled from "fannkuch.groovy"
public class fannkuch extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public fannkuch();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       7: astore_1
       8: return

  public fannkuch(groovy.lang.Binding);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_0
       5: aload_1
       6: invokespecial #22                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       9: return

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #27                 // int 0
       7: aaload
       8: ldc           #29                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class fannkuch
      12: aload_0
      13: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      18: pop
      19: return

  public java.lang.Object run();
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: bipush        7
       6: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       9: astore_2
      10: aload_2
      11: pop
      12: aload_1
      13: ldc           #46                 // int 1
      15: aaload
      16: aload_1
      17: ldc           #47                 // int 2
      19: aaload
      20: aload_0
      21: invokeinterface #51,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      26: invokeinterface #54,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      31: iconst_0
      32: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      35: invokestatic  #60                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
      38: ifeq          80
      41: aload_1
      42: ldc           #61                 // int 3
      44: aaload
      45: ldc           #41                 // class java/lang/Integer
      47: aload_1
      48: ldc           #62                 // int 4
      50: aaload
      51: aload_1
      52: ldc           #63                 // int 5
      54: aaload
      55: aload_0
      56: invokeinterface #51,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      61: iconst_0
      62: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      65: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      70: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      75: astore_3
      76: aload_3
      77: astore_2
      78: aload_3
      79: pop
      80: aload_1
      81: ldc           #67                 // int 6
      83: aaload
      84: aload_0
      85: aload_1
      86: ldc           #68                 // int 7
      88: aaload
      89: aload_1
      90: ldc           #69                 // int 8
      92: aaload
      93: aload_1
      94: ldc           #70                 // int 9
      96: aaload
      97: ldc           #72                 // String Pfannkuchen(
      99: aload_2
     100: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     105: ldc           #74                 // String ) =
     107: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     112: aload_1
     113: ldc           #75                 // int 10
     115: aaload
     116: aload_0
     117: aload_2
     118: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     123: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     128: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     133: areturn
     134: aconst_null
     135: areturn

  public java.lang.Object fannkuch(int);
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: iconst_0
       5: istore_3
       6: iload_3
       7: pop
       8: iload_1
       9: multianewarray #84,  1            // class "[I"
      13: astore        4
      15: aload         4
      17: pop
      18: iload_1
      19: multianewarray #84,  1            // class "[I"
      23: astore        5
      25: aload         5
      27: pop
      28: iload_1
      29: multianewarray #84,  1            // class "[I"
      33: astore        6
      35: aload         6
      37: pop
      38: iload_1
      39: multianewarray #84,  1            // class "[I"
      43: astore        7
      45: aload         7
      47: pop
      48: iconst_0
      49: istore        8
      51: iload         8
      53: pop
      54: ldc           #27                 // int 0
      56: istore        9
      58: invokestatic  #90                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
      61: ifeq          79
      64: getstatic     #92                 // Field __$stMC:Z
      67: ifne          79
      70: invokestatic  #95                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
      73: ifne          79
      76: goto          111
      79: aload_2
      80: ldc           #96                 // int 11
      82: aaload
      83: iload_1
      84: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      87: iconst_1
      88: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      91: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      96: astore        10
      98: aload         10
     100: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     103: istore        9
     105: aload         10
     107: pop
     108: goto          123
     111: iload_1
     112: iconst_1
     113: isub
     114: istore        11
     116: iload         11
     118: istore        9
     120: iload         11
     122: pop
     123: invokestatic  #90                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     126: ifeq          144
     129: getstatic     #92                 // Field __$stMC:Z
     132: ifne          144
     135: invokestatic  #95                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     138: ifne          144
     141: goto          227
     144: aconst_null
     145: astore        12
     147: aload_2
     148: ldc           #103                // int 12
     150: aaload
     151: iconst_0
     152: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     155: iload_1
     156: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     159: ldc           #27                 // int 0
     161: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     164: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     169: ldc           #111                // class java/util/Iterator
     171: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     174: checkcast     #111                // class java/util/Iterator
     177: astore        13
     179: aload         13
     181: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     186: ifeq          224
     189: aload         13
     191: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     196: astore        12
     198: aload         12
     200: astore        14
     202: aload_2
     203: ldc           #122                // int 13
     205: aaload
     206: aload         5
     208: aload         12
     210: aload         14
     212: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     217: pop
     218: aload         14
     220: pop
     221: goto          179
     224: goto          306
     227: aconst_null
     228: astore        15
     230: aload_2
     231: ldc           #123                // int 14
     233: aaload
     234: iconst_0
     235: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     238: iload_1
     239: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     242: ldc           #27                 // int 0
     244: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     247: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     252: ldc           #111                // class java/util/Iterator
     254: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     257: checkcast     #111                // class java/util/Iterator
     260: astore        16
     262: aload         16
     264: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     269: ifeq          306
     272: aload         16
     274: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     279: astore        15
     281: aload         15
     283: astore        17
     285: aload         5
     287: aload         15
     289: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     292: aload         17
     294: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     297: invokestatic  #127                // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
     300: aload         17
     302: pop
     303: goto          262
     306: ldc           #27                 // int 0
     308: istore        18
     310: invokestatic  #90                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     313: ifeq          331
     316: getstatic     #92                 // Field __$stMC:Z
     319: ifne          331
     322: invokestatic  #95                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     325: ifne          331
     328: goto          344
     331: iload_1
     332: istore        19
     334: iload         19
     336: istore        18
     338: iload         19
     340: pop
     341: goto          354
     344: iload_1
     345: istore        20
     347: iload         20
     349: istore        18
     351: iload         20
     353: pop
     354: iload_3
     355: bipush        30
     357: if_icmpge     364
     360: iconst_1
     361: goto          365
     364: iconst_0
     365: ifeq          501
     368: aconst_null
     369: astore        21
     371: aload_2
     372: ldc           #128                // int 15
     374: aaload
     375: iconst_0
     376: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     379: iload_1
     380: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     383: ldc           #27                 // int 0
     385: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     388: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     393: ldc           #111                // class java/util/Iterator
     395: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     398: checkcast     #111                // class java/util/Iterator
     401: astore        22
     403: aload         22
     405: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     410: ifeq          462
     413: aload         22
     415: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     420: astore        21
     422: aload_2
     423: ldc           #129                // int 16
     425: aaload
     426: aload_0
     427: aload_2
     428: ldc           #130                // int 17
     430: aaload
     431: aload_2
     432: ldc           #131                // int 18
     434: aaload
     435: aload         5
     437: aload         21
     439: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     444: iconst_1
     445: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     448: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     453: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     458: pop
     459: goto          403
     462: aload_2
     463: ldc           #132                // int 19
     465: aaload
     466: aload_0
     467: ldc           #134                // String \n
     469: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     474: pop
     475: iload_3
     476: dup
     477: istore        23
     479: aload_2
     480: ldc           #135                // int 20
     482: aaload
     483: swap
     484: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     487: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     492: dup
     493: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     496: istore_3
     497: pop
     498: iload         23
     500: pop
     501: iload         18
     503: iconst_1
     504: if_icmpeq     511
     507: iconst_1
     508: goto          512
     511: iconst_0
     512: ifeq          588
     515: iload         18
     517: istore        24
     519: aload_2
     520: ldc           #136                // int 21
     522: aaload
     523: aload         6
     525: aload_2
     526: ldc           #137                // int 22
     528: aaload
     529: iload         18
     531: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     534: iconst_1
     535: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     538: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     543: iload         24
     545: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     548: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     553: pop
     554: iload         24
     556: pop
     557: iload         18
     559: dup
     560: istore        25
     562: aload_2
     563: ldc           #138                // int 23
     565: aaload
     566: swap
     567: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     570: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     575: dup
     576: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     579: istore        18
     581: pop
     582: iload         25
     584: pop
     585: goto          501
     588: aload_2
     589: ldc           #139                // int 24
     591: aaload
     592: aload         5
     594: iconst_0
     595: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     598: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     603: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     606: iconst_0
     607: if_icmpne     614
     610: iconst_1
     611: goto          615
     614: iconst_0
     615: ifne          650
     618: aload_2
     619: ldc           #140                // int 25
     621: aaload
     622: aload         5
     624: iload         9
     626: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     629: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     634: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     637: iload         9
     639: if_icmpne     646
     642: iconst_1
     643: goto          647
     646: iconst_0
     647: ifeq          654
     650: iconst_1
     651: goto          655
     654: iconst_0
     655: ifne          662
     658: iconst_1
     659: goto          663
     662: iconst_0
     663: ifeq          1168
     666: aconst_null
     667: astore        26
     669: aload_2
     670: ldc           #141                // int 26
     672: aaload
     673: iconst_0
     674: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     677: iload_1
     678: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     681: ldc           #27                 // int 0
     683: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     686: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     691: ldc           #111                // class java/util/Iterator
     693: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     696: checkcast     #111                // class java/util/Iterator
     699: astore        27
     701: aload         27
     703: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     708: ifeq          757
     711: aload         27
     713: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     718: astore        26
     720: aload_2
     721: ldc           #142                // int 27
     723: aaload
     724: aload         5
     726: aload         26
     728: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     733: astore        28
     735: aload_2
     736: ldc           #143                // int 28
     738: aaload
     739: aload         4
     741: aload         26
     743: aload         28
     745: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     750: pop
     751: aload         28
     753: pop
     754: goto          701
     757: iconst_0
     758: istore        29
     760: iload         29
     762: pop
     763: ldc           #27                 // int 0
     765: istore        30
     767: iload         30
     769: pop
     770: aload_2
     771: ldc           #144                // int 29
     773: aaload
     774: aload         4
     776: iconst_0
     777: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     780: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     785: astore        31
     787: aload         31
     789: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     792: istore        30
     794: aload         31
     796: iconst_0
     797: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     800: invokestatic  #147                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     803: ifne          810
     806: iconst_1
     807: goto          811
     810: iconst_0
     811: ifeq          1051
     814: aload_2
     815: ldc           #148                // int 30
     817: aaload
     818: aload_2
     819: ldc           #149                // int 31
     821: aaload
     822: iload         30
     824: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     827: iconst_1
     828: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     831: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     836: iconst_1
     837: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     840: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     845: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     848: istore        32
     850: iload         32
     852: pop
     853: aconst_null
     854: astore        33
     856: aload_2
     857: ldc           #150                // int 32
     859: aaload
     860: iconst_0
     861: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     864: iload         32
     866: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     869: ldc           #27                 // int 0
     871: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     874: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     879: ldc           #111                // class java/util/Iterator
     881: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     884: checkcast     #111                // class java/util/Iterator
     887: astore        34
     889: aload         34
     891: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     896: ifeq          1020
     899: aload         34
     901: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     906: astore        33
     908: aload_2
     909: ldc           #151                // int 33
     911: aaload
     912: aload         4
     914: aload         33
     916: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     921: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     924: istore        35
     926: iload         35
     928: pop
     929: aload_2
     930: ldc           #152                // int 34
     932: aaload
     933: aload         4
     935: aload_2
     936: ldc           #153                // int 35
     938: aaload
     939: iload         30
     941: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     944: aload         33
     946: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     951: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     956: astore        36
     958: aload_2
     959: ldc           #154                // int 36
     961: aaload
     962: aload         4
     964: aload         33
     966: aload         36
     968: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     973: pop
     974: aload         36
     976: pop
     977: iload         35
     979: istore        37
     981: aload_2
     982: ldc           #155                // int 37
     984: aaload
     985: aload         4
     987: aload_2
     988: ldc           #156                // int 38
     990: aaload
     991: iload         30
     993: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     996: aload         33
     998: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1003: iload         37
    1005: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1008: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1013: pop
    1014: iload         37
    1016: pop
    1017: goto          889
    1020: iload         29
    1022: dup
    1023: istore        38
    1025: aload_2
    1026: ldc           #157                // int 39
    1028: aaload
    1029: swap
    1030: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1033: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1038: dup
    1039: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1042: istore        29
    1044: pop
    1045: iload         38
    1047: pop
    1048: goto          770
    1051: iload         29
    1053: iload         8
    1055: if_icmple     1062
    1058: iconst_1
    1059: goto          1063
    1062: iconst_0
    1063: ifeq          1168
    1066: iload         29
    1068: istore        39
    1070: iload         39
    1072: istore        8
    1074: iload         39
    1076: pop
    1077: aconst_null
    1078: astore        40
    1080: aload_2
    1081: ldc           #158                // int 40
    1083: aaload
    1084: iconst_0
    1085: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1088: iload_1
    1089: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1092: ldc           #27                 // int 0
    1094: invokestatic  #107                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
    1097: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1102: ldc           #111                // class java/util/Iterator
    1104: invokestatic  #115                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    1107: checkcast     #111                // class java/util/Iterator
    1110: astore        41
    1112: aload         41
    1114: invokeinterface #118,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
    1119: ifeq          1168
    1122: aload         41
    1124: invokeinterface #121,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1129: astore        40
    1131: aload_2
    1132: ldc           #159                // int 41
    1134: aaload
    1135: aload         5
    1137: aload         40
    1139: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1144: astore        42
    1146: aload_2
    1147: ldc           #160                // int 42
    1149: aaload
    1150: aload         7
    1152: aload         40
    1154: aload         42
    1156: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1161: pop
    1162: aload         42
    1164: pop
    1165: goto          1112
    1168: iload         18
    1170: iload_1
    1171: if_icmpne     1178
    1174: iconst_1
    1175: goto          1179
    1178: iconst_0
    1179: ifeq          1188
    1182: iload         8
    1184: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1187: areturn
    1188: aload_2
    1189: ldc           #161                // int 43
    1191: aaload
    1192: aload         5
    1194: iconst_0
    1195: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1198: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1203: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1206: istore        43
    1208: iload         43
    1210: pop
    1211: iconst_0
    1212: istore        44
    1214: iload         44
    1216: pop
    1217: iload         44
    1219: iload         18
    1221: if_icmpge     1228
    1224: iconst_1
    1225: goto          1229
    1228: iconst_0
    1229: ifeq          1312
    1232: aload_2
    1233: ldc           #162                // int 44
    1235: aaload
    1236: iload         44
    1238: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1241: iconst_1
    1242: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1245: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1250: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1253: istore        45
    1255: iload         45
    1257: pop
    1258: aload_2
    1259: ldc           #163                // int 45
    1261: aaload
    1262: aload         5
    1264: iload         45
    1266: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1269: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1274: astore        46
    1276: aload_2
    1277: ldc           #164                // int 46
    1279: aaload
    1280: aload         5
    1282: iload         44
    1284: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1287: aload         46
    1289: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1294: pop
    1295: aload         46
    1297: pop
    1298: iload         45
    1300: istore        47
    1302: iload         47
    1304: istore        44
    1306: iload         47
    1308: pop
    1309: goto          1217
    1312: iload         43
    1314: istore        48
    1316: aload_2
    1317: ldc           #165                // int 47
    1319: aaload
    1320: aload         5
    1322: iload         18
    1324: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1327: iload         48
    1329: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1332: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1337: pop
    1338: iload         48
    1340: pop
    1341: aload_2
    1342: ldc           #166                // int 48
    1344: aaload
    1345: aload_2
    1346: ldc           #167                // int 49
    1348: aaload
    1349: aload         6
    1351: iload         18
    1353: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1356: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1361: iconst_1
    1362: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1365: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1370: astore        49
    1372: aload_2
    1373: ldc           #168                // int 50
    1375: aaload
    1376: aload         6
    1378: iload         18
    1380: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1383: aload         49
    1385: invokeinterface #35,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1390: pop
    1391: aload         49
    1393: pop
    1394: aload_2
    1395: ldc           #169                // int 51
    1397: aaload
    1398: aload         6
    1400: iload         18
    1402: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1405: invokeinterface #66,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1410: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1413: iconst_0
    1414: if_icmple     1421
    1417: iconst_1
    1418: goto          1422
    1421: iconst_0
    1422: ifeq          1428
    1425: goto          1459
    1428: iload         18
    1430: dup
    1431: istore        50
    1433: aload_2
    1434: ldc           #170                // int 52
    1436: aaload
    1437: swap
    1438: invokestatic  #45                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1441: invokeinterface #109,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1446: dup
    1447: invokestatic  #102                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1450: istore        18
    1452: pop
    1453: iload         50
    1455: pop
    1456: goto          1168
    1459: goto          354
    1462: aconst_null
    1463: areturn
    1464: aconst_null
    1465: areturn

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #194                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class fannkuch
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #198                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #200                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #194                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #206                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #200                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #209                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Invoke Dynamic

          Compiled from "fannkuch.groovy"
public class fannkuch extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public fannkuch();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: return

  public fannkuch(groovy.lang.Binding);
    Code:
       0: aload_0
       1: aload_1
       2: invokespecial #18                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       5: return

  public static void main(java.lang.String...);
    Code:
       0: ldc           #24                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class fannkuch
       4: aload_0
       5: invokedynamic #38,  0             // InvokeDynamic #0:invoke:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
      10: pop
      11: return

  public java.lang.Object run();
    Code:
       0: bipush        7
       2: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       5: astore_1
       6: aload_1
       7: pop
       8: aload_0
       9: invokedynamic #54,  0             // InvokeDynamic #1:getProperty:(Lfannkuch;)Ljava/lang/Object;
      14: invokedynamic #59,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      19: iconst_0
      20: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      23: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
      26: ifeq          53
      29: ldc           #44                 // class java/lang/Integer
      31: aload_0
      32: invokedynamic #54,  0             // InvokeDynamic #1:getProperty:(Lfannkuch;)Ljava/lang/Object;
      37: iconst_0
      38: invokedynamic #70,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      43: invokedynamic #75,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      48: astore_2
      49: aload_2
      50: astore_1
      51: aload_2
      52: pop
      53: aload_0
      54: ldc           #77                 // String Pfannkuchen(
      56: aload_1
      57: invokedynamic #82,  0             // InvokeDynamic #5:invoke:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
      62: ldc           #84                 // String ) =
      64: invokedynamic #87,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
      69: aload_0
      70: aload_1
      71: invokedynamic #92,  0             // InvokeDynamic #6:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
      76: invokedynamic #95,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      81: invokedynamic #98,  0             // InvokeDynamic #7:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
      86: areturn
      87: nop
      88: athrow

  public java.lang.Object fannkuch(int);
    Code:
       0: iconst_0
       1: istore_2
       2: iload_2
       3: pop
       4: iload_1
       5: multianewarray #107,  1           // class "[I"
       9: astore_3
      10: aload_3
      11: pop
      12: iload_1
      13: multianewarray #107,  1           // class "[I"
      17: astore        4
      19: aload         4
      21: pop
      22: iload_1
      23: multianewarray #107,  1           // class "[I"
      27: astore        5
      29: aload         5
      31: pop
      32: iload_1
      33: multianewarray #107,  1           // class "[I"
      37: astore        6
      39: aload         6
      41: pop
      42: iconst_0
      43: istore        7
      45: iload         7
      47: pop
      48: iload_1
      49: iconst_1
      50: invokedynamic #112,  0            // InvokeDynamic #8:invoke:(II)Ljava/lang/Object;
      55: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
      58: istore        8
      60: iload         8
      62: pop
      63: aconst_null
      64: astore        9
      66: iconst_0
      67: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      70: iload_1
      71: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      74: ldc           #34                 // int 0
      76: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      79: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      84: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      89: astore        10
      91: aload         10
      93: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      98: ifeq          132
     101: aload         10
     103: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     108: astore        9
     110: aload         9
     112: astore        11
     114: aload         4
     116: aload         9
     118: aload         11
     120: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     125: pop
     126: aload         11
     128: pop
     129: goto          91
     132: iload_1
     133: istore        12
     135: iload         12
     137: pop
     138: iload_2
     139: bipush        30
     141: if_icmpge     148
     144: iconst_1
     145: goto          149
     148: iconst_0
     149: ifeq          251
     152: aconst_null
     153: astore        13
     155: iconst_0
     156: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     159: iload_1
     160: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     163: ldc           #34                 // int 0
     165: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     168: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     173: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     178: astore        14
     180: aload         14
     182: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     187: ifeq          224
     190: aload         14
     192: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     197: astore        13
     199: aload_0
     200: aload         4
     202: aload         13
     204: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     209: iconst_1
     210: invokedynamic #151,  0            // InvokeDynamic #5:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     215: invokedynamic #154,  0            // InvokeDynamic #12:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
     220: pop
     221: goto          180
     224: aload_0
     225: ldc           #156                // String \n
     227: invokedynamic #159,  0            // InvokeDynamic #12:invoke:(Lfannkuch;Ljava/lang/String;)Ljava/lang/Object;
     232: pop
     233: iload_2
     234: dup
     235: istore        15
     237: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     242: dup
     243: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     246: istore_2
     247: pop
     248: iload         15
     250: pop
     251: iload         12
     253: iconst_1
     254: if_icmpeq     261
     257: iconst_1
     258: goto          262
     261: iconst_0
     262: ifeq          313
     265: iload         12
     267: istore        16
     269: aload         5
     271: iload         12
     273: iconst_1
     274: invokedynamic #112,  0            // InvokeDynamic #8:invoke:(II)Ljava/lang/Object;
     279: iload         16
     281: invokedynamic #165,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;I)Ljava/lang/Object;
     286: pop
     287: iload         16
     289: pop
     290: iload         12
     292: dup
     293: istore        17
     295: invokedynamic #168,  0            // InvokeDynamic #14:invoke:(I)Ljava/lang/Object;
     300: dup
     301: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     304: istore        12
     306: pop
     307: iload         17
     309: pop
     310: goto          251
     313: aload         4
     315: iconst_0
     316: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     321: iconst_0
     322: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     325: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     328: ifne          351
     331: aload         4
     333: iload         8
     335: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     340: iload         8
     342: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     345: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     348: ifeq          355
     351: iconst_1
     352: goto          356
     355: iconst_0
     356: ifne          363
     359: iconst_1
     360: goto          364
     363: iconst_0
     364: ifeq          761
     367: aconst_null
     368: astore        18
     370: iconst_0
     371: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     374: iload_1
     375: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     378: ldc           #34                 // int 0
     380: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     383: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     388: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     393: astore        19
     395: aload         19
     397: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     402: ifeq          442
     405: aload         19
     407: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     412: astore        18
     414: aload         4
     416: aload         18
     418: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     423: astore        20
     425: aload_3
     426: aload         18
     428: aload         20
     430: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     435: pop
     436: aload         20
     438: pop
     439: goto          395
     442: iconst_0
     443: istore        21
     445: iload         21
     447: pop
     448: ldc           #34                 // int 0
     450: istore        22
     452: iload         22
     454: pop
     455: aload_3
     456: iconst_0
     457: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     462: astore        23
     464: aload         23
     466: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     469: istore        22
     471: aload         23
     473: iconst_0
     474: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     477: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     480: ifne          487
     483: iconst_1
     484: goto          488
     487: iconst_0
     488: ifeq          659
     491: iload         22
     493: iconst_1
     494: invokedynamic #175,  0            // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     499: iconst_1
     500: invokedynamic #178,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     505: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     508: istore        24
     510: iload         24
     512: pop
     513: aconst_null
     514: astore        25
     516: iconst_0
     517: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     520: iload         24
     522: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     525: ldc           #34                 // int 0
     527: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     530: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     535: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     540: astore        26
     542: aload         26
     544: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     549: ifeq          636
     552: aload         26
     554: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     559: astore        25
     561: aload_3
     562: aload         25
     564: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     569: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     572: istore        27
     574: iload         27
     576: pop
     577: aload_3
     578: iload         22
     580: aload         25
     582: invokedynamic #181,  0            // InvokeDynamic #8:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     587: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     592: astore        28
     594: aload_3
     595: aload         25
     597: aload         28
     599: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     604: pop
     605: aload         28
     607: pop
     608: iload         27
     610: istore        29
     612: aload_3
     613: iload         22
     615: aload         25
     617: invokedynamic #181,  0            // InvokeDynamic #8:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     622: iload         29
     624: invokedynamic #165,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;I)Ljava/lang/Object;
     629: pop
     630: iload         29
     632: pop
     633: goto          542
     636: iload         21
     638: dup
     639: istore        30
     641: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     646: dup
     647: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     650: istore        21
     652: pop
     653: iload         30
     655: pop
     656: goto          455
     659: iload         21
     661: iload         7
     663: if_icmple     670
     666: iconst_1
     667: goto          671
     670: iconst_0
     671: ifeq          761
     674: iload         21
     676: istore        31
     678: iload         31
     680: istore        7
     682: iload         31
     684: pop
     685: aconst_null
     686: astore        32
     688: iconst_0
     689: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     692: iload_1
     693: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     696: ldc           #34                 // int 0
     698: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     701: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     706: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     711: astore        33
     713: aload         33
     715: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     720: ifeq          761
     723: aload         33
     725: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     730: astore        32
     732: aload         4
     734: aload         32
     736: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     741: astore        34
     743: aload         6
     745: aload         32
     747: aload         34
     749: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     754: pop
     755: aload         34
     757: pop
     758: goto          713
     761: iload         12
     763: iload_1
     764: if_icmpne     771
     767: iconst_1
     768: goto          772
     771: iconst_0
     772: ifeq          781
     775: iload         7
     777: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     780: areturn
     781: aload         4
     783: iconst_0
     784: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     789: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     792: istore        35
     794: iload         35
     796: pop
     797: iconst_0
     798: istore        36
     800: iload         36
     802: pop
     803: iload         36
     805: iload         12
     807: if_icmpge     814
     810: iconst_1
     811: goto          815
     814: iconst_0
     815: ifeq          874
     818: iload         36
     820: iconst_1
     821: invokedynamic #175,  0            // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     826: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     829: istore        37
     831: iload         37
     833: pop
     834: aload         4
     836: iload         37
     838: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     843: astore        38
     845: aload         4
     847: iload         36
     849: aload         38
     851: invokedynamic #184,  0            // InvokeDynamic #11:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
     856: pop
     857: aload         38
     859: pop
     860: iload         37
     862: istore        39
     864: iload         39
     866: istore        36
     868: iload         39
     870: pop
     871: goto          803
     874: iload         35
     876: istore        40
     878: aload         4
     880: iload         12
     882: iload         40
     884: invokedynamic #187,  0            // InvokeDynamic #11:invoke:([III)Ljava/lang/Object;
     889: pop
     890: iload         40
     892: pop
     893: aload         5
     895: iload         12
     897: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     902: iconst_1
     903: invokedynamic #188,  0            // InvokeDynamic #8:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     908: astore        41
     910: aload         5
     912: iload         12
     914: aload         41
     916: invokedynamic #184,  0            // InvokeDynamic #11:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
     921: pop
     922: aload         41
     924: pop
     925: aload         5
     927: iload         12
     929: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     934: iconst_0
     935: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     938: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     941: ifeq          947
     944: goto          970
     947: iload         12
     949: dup
     950: istore        42
     952: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     957: dup
     958: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     961: istore        12
     963: pop
     964: iload         42
     966: pop
     967: goto          761
     970: goto          138
     973: nop
     974: athrow
     975: nop
     976: athrow

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #210                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class fannkuch
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #214                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #216                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #210                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #222                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #216                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #225                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Static Compilation

          org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/fannkuch.groovy: 9: [Static type checking] - The variable [args] is undeclared.
 @ line 9, column 5.
   if (args.length > 0) {
       ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/fannkuch.groovy: 10: [Static type checking] - The variable [args] is undeclared.
 @ line 10, column 26.
       n = Integer.parseInt(args[0])
                            ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/fannkuch.groovy: 10: [Static type checking] - Cannot find matching method java.lang.Integer#parseInt(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 10, column 9.
       n = Integer.parseInt(args[0])
           ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/fannkuch.groovy: 12: [Static type checking] - Cannot find matching method fannkuch#fannkuch(java.lang.Object). Please check if the declared type is right and if the method exists.
 @ line 12, column 39.
   println("Pfannkuchen(" + n + ") = " + fannkuch(n))
                                         ^

4 errors


        

AFTER

Groovyc (Legacy)

          Compiled from "fannkuch.groovy"
public class fannkuch extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public fannkuch();
    Code:
       0: aload_0
       1: invokespecial #15                 // Method groovy/lang/Script."<init>":()V
       4: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       7: astore_1
       8: return

  public fannkuch(groovy.lang.Binding);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_0
       5: aload_1
       6: invokespecial #24                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       9: return

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #29                 // int 0
       7: aaload
       8: ldc           #31                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class fannkuch
      12: aload_0
      13: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      18: pop
      19: return

  public java.lang.Object run();
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: bipush        7
       6: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       9: astore_2
      10: aload_1
      11: ldc           #48                 // int 1
      13: aaload
      14: aload_1
      15: ldc           #49                 // int 2
      17: aaload
      18: aload_0
      19: invokeinterface #53,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      24: invokeinterface #56,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      29: iconst_0
      30: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      33: invokestatic  #62                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
      36: ifeq          76
      39: aload_1
      40: ldc           #63                 // int 3
      42: aaload
      43: ldc           #43                 // class java/lang/Integer
      45: aload_1
      46: ldc           #64                 // int 4
      48: aaload
      49: aload_1
      50: ldc           #65                 // int 5
      52: aaload
      53: aload_0
      54: invokeinterface #53,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      59: iconst_0
      60: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      63: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      68: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      73: astore_3
      74: aload_3
      75: astore_2
      76: aload_1
      77: ldc           #69                 // int 6
      79: aaload
      80: aload_0
      81: aload_1
      82: ldc           #70                 // int 7
      84: aaload
      85: aload_1
      86: ldc           #71                 // int 8
      88: aaload
      89: aload_1
      90: ldc           #72                 // int 9
      92: aaload
      93: ldc           #74                 // String Pfannkuchen(
      95: aload_2
      96: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     101: ldc           #76                 // String ) =
     103: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     108: aload_1
     109: ldc           #77                 // int 10
     111: aaload
     112: aload_0
     113: aload_2
     114: invokeinterface #81,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     119: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     124: invokeinterface #81,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     129: areturn
     130: aconst_null
     131: areturn

  public java.lang.Object fannkuch(int);
    Code:
       0: invokestatic  #19                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: iconst_0
       5: istore_3
       6: iload_1
       7: multianewarray #86,  1            // class "[I"
      11: astore        4
      13: iload_1
      14: multianewarray #86,  1            // class "[I"
      18: astore        5
      20: iload_1
      21: multianewarray #86,  1            // class "[I"
      25: astore        6
      27: iload_1
      28: multianewarray #86,  1            // class "[I"
      32: astore        7
      34: iconst_0
      35: istore        8
      37: ldc           #29                 // int 0
      39: istore        9
      41: invokestatic  #92                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
      44: ifeq          62
      47: getstatic     #94                 // Field __$stMC:Z
      50: ifne          62
      53: invokestatic  #97                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
      56: ifne          62
      59: goto          91
      62: aload_2
      63: ldc           #98                 // int 11
      65: aaload
      66: iload_1
      67: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      70: iconst_1
      71: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      74: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      79: astore        10
      81: aload         10
      83: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
      86: istore        9
      88: goto          100
      91: iload_1
      92: iconst_1
      93: isub
      94: istore        11
      96: iload         11
      98: istore        9
     100: invokestatic  #92                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     103: ifeq          121
     106: getstatic     #94                 // Field __$stMC:Z
     109: ifne          121
     112: invokestatic  #97                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     115: ifne          121
     118: goto          201
     121: aconst_null
     122: astore        12
     124: aload_2
     125: ldc           #105                // int 12
     127: aaload
     128: iconst_0
     129: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     132: iload_1
     133: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     136: ldc           #29                 // int 0
     138: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     141: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     146: ldc           #113                // class java/util/Iterator
     148: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     151: checkcast     #113                // class java/util/Iterator
     154: astore        13
     156: aload         13
     158: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     163: ifeq          198
     166: aload         13
     168: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     173: astore        12
     175: aload         12
     177: astore        14
     179: aload_2
     180: ldc           #124                // int 13
     182: aaload
     183: aload         5
     185: aload         12
     187: aload         14
     189: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     194: pop
     195: goto          156
     198: goto          277
     201: aconst_null
     202: astore        15
     204: aload_2
     205: ldc           #125                // int 14
     207: aaload
     208: iconst_0
     209: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     212: iload_1
     213: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     216: ldc           #29                 // int 0
     218: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     221: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     226: ldc           #113                // class java/util/Iterator
     228: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     231: checkcast     #113                // class java/util/Iterator
     234: astore        16
     236: aload         16
     238: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     243: ifeq          277
     246: aload         16
     248: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     253: astore        15
     255: aload         15
     257: astore        17
     259: aload         5
     261: aload         15
     263: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     266: aload         17
     268: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     271: invokestatic  #129                // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
     274: goto          236
     277: ldc           #29                 // int 0
     279: istore        18
     281: invokestatic  #92                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     284: ifeq          302
     287: getstatic     #94                 // Field __$stMC:Z
     290: ifne          302
     293: invokestatic  #97                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     296: ifne          302
     299: goto          312
     302: iload_1
     303: istore        19
     305: iload         19
     307: istore        18
     309: goto          319
     312: iload_1
     313: istore        20
     315: iload         20
     317: istore        18
     319: iload_3
     320: bipush        30
     322: if_icmpge     329
     325: iconst_1
     326: goto          330
     329: iconst_0
     330: ifeq          463
     333: aconst_null
     334: astore        21
     336: aload_2
     337: ldc           #130                // int 15
     339: aaload
     340: iconst_0
     341: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     344: iload_1
     345: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     348: ldc           #29                 // int 0
     350: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     353: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     358: ldc           #113                // class java/util/Iterator
     360: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     363: checkcast     #113                // class java/util/Iterator
     366: astore        22
     368: aload         22
     370: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     375: ifeq          427
     378: aload         22
     380: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     385: astore        21
     387: aload_2
     388: ldc           #131                // int 16
     390: aaload
     391: aload_0
     392: aload_2
     393: ldc           #132                // int 17
     395: aaload
     396: aload_2
     397: ldc           #133                // int 18
     399: aaload
     400: aload         5
     402: aload         21
     404: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     409: iconst_1
     410: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     413: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     418: invokeinterface #81,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     423: pop
     424: goto          368
     427: aload_2
     428: ldc           #134                // int 19
     430: aaload
     431: aload_0
     432: ldc           #136                // String \n
     434: invokeinterface #81,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callCurrent:(Lgroovy/lang/GroovyObject;Ljava/lang/Object;)Ljava/lang/Object;
     439: pop
     440: iload_3
     441: dup
     442: istore        23
     444: aload_2
     445: ldc           #137                // int 20
     447: aaload
     448: swap
     449: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     452: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     457: dup
     458: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     461: istore_3
     462: pop
     463: iload         18
     465: iconst_1
     466: if_icmpeq     473
     469: iconst_1
     470: goto          474
     473: iconst_0
     474: ifeq          544
     477: iload         18
     479: istore        24
     481: aload_2
     482: ldc           #138                // int 21
     484: aaload
     485: aload         6
     487: aload_2
     488: ldc           #139                // int 22
     490: aaload
     491: iload         18
     493: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     496: iconst_1
     497: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     500: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     505: iload         24
     507: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     510: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     515: pop
     516: iload         18
     518: dup
     519: istore        25
     521: aload_2
     522: ldc           #140                // int 23
     524: aaload
     525: swap
     526: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     529: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     534: dup
     535: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     538: istore        18
     540: pop
     541: goto          463
     544: aload_2
     545: ldc           #141                // int 24
     547: aaload
     548: aload         5
     550: iconst_0
     551: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     554: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     559: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     562: iconst_0
     563: if_icmpne     570
     566: iconst_1
     567: goto          571
     570: iconst_0
     571: ifne          606
     574: aload_2
     575: ldc           #142                // int 25
     577: aaload
     578: aload         5
     580: iload         9
     582: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     585: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     590: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     593: iload         9
     595: if_icmpne     602
     598: iconst_1
     599: goto          603
     602: iconst_0
     603: ifeq          610
     606: iconst_1
     607: goto          611
     610: iconst_0
     611: ifne          618
     614: iconst_1
     615: goto          619
     618: iconst_0
     619: ifeq          1094
     622: aconst_null
     623: astore        26
     625: aload_2
     626: ldc           #143                // int 26
     628: aaload
     629: iconst_0
     630: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     633: iload_1
     634: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     637: ldc           #29                 // int 0
     639: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     642: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     647: ldc           #113                // class java/util/Iterator
     649: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     652: checkcast     #113                // class java/util/Iterator
     655: astore        27
     657: aload         27
     659: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     664: ifeq          710
     667: aload         27
     669: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     674: astore        26
     676: aload_2
     677: ldc           #144                // int 27
     679: aaload
     680: aload         5
     682: aload         26
     684: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     689: astore        28
     691: aload_2
     692: ldc           #145                // int 28
     694: aaload
     695: aload         4
     697: aload         26
     699: aload         28
     701: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     706: pop
     707: goto          657
     710: iconst_0
     711: istore        29
     713: ldc           #29                 // int 0
     715: istore        30
     717: aload_2
     718: ldc           #146                // int 29
     720: aaload
     721: aload         4
     723: iconst_0
     724: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     727: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     732: astore        31
     734: aload         31
     736: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     739: istore        30
     741: aload         31
     743: iconst_0
     744: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     747: invokestatic  #149                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     750: ifne          757
     753: iconst_1
     754: goto          758
     757: iconst_0
     758: ifeq          983
     761: aload_2
     762: ldc           #150                // int 30
     764: aaload
     765: aload_2
     766: ldc           #151                // int 31
     768: aaload
     769: iload         30
     771: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     774: iconst_1
     775: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     778: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     783: iconst_1
     784: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     787: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     792: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     795: istore        32
     797: aconst_null
     798: astore        33
     800: aload_2
     801: ldc           #152                // int 32
     803: aaload
     804: iconst_0
     805: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     808: iload         32
     810: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     813: ldc           #29                 // int 0
     815: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     818: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     823: ldc           #113                // class java/util/Iterator
     825: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
     828: checkcast     #113                // class java/util/Iterator
     831: astore        34
     833: aload         34
     835: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     840: ifeq          955
     843: aload         34
     845: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     850: astore        33
     852: aload_2
     853: ldc           #153                // int 33
     855: aaload
     856: aload         4
     858: aload         33
     860: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     865: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     868: istore        35
     870: aload_2
     871: ldc           #154                // int 34
     873: aaload
     874: aload         4
     876: aload_2
     877: ldc           #155                // int 35
     879: aaload
     880: iload         30
     882: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     885: aload         33
     887: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     892: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     897: astore        36
     899: aload_2
     900: ldc           #156                // int 36
     902: aaload
     903: aload         4
     905: aload         33
     907: aload         36
     909: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     914: pop
     915: iload         35
     917: istore        37
     919: aload_2
     920: ldc           #157                // int 37
     922: aaload
     923: aload         4
     925: aload_2
     926: ldc           #158                // int 38
     928: aaload
     929: iload         30
     931: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     934: aload         33
     936: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     941: iload         37
     943: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     946: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     951: pop
     952: goto          833
     955: iload         29
     957: dup
     958: istore        38
     960: aload_2
     961: ldc           #159                // int 39
     963: aaload
     964: swap
     965: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     968: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     973: dup
     974: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     977: istore        29
     979: pop
     980: goto          717
     983: iload         29
     985: iload         8
     987: if_icmple     994
     990: iconst_1
     991: goto          995
     994: iconst_0
     995: ifeq          1094
     998: iload         29
    1000: istore        39
    1002: iload         39
    1004: istore        8
    1006: aconst_null
    1007: astore        40
    1009: aload_2
    1010: ldc           #160                // int 40
    1012: aaload
    1013: iconst_0
    1014: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1017: iload_1
    1018: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1021: ldc           #29                 // int 0
    1023: invokestatic  #109                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
    1026: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1031: ldc           #113                // class java/util/Iterator
    1033: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    1036: checkcast     #113                // class java/util/Iterator
    1039: astore        41
    1041: aload         41
    1043: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
    1048: ifeq          1094
    1051: aload         41
    1053: invokeinterface #123,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1058: astore        40
    1060: aload_2
    1061: ldc           #161                // int 41
    1063: aaload
    1064: aload         5
    1066: aload         40
    1068: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1073: astore        42
    1075: aload_2
    1076: ldc           #162                // int 42
    1078: aaload
    1079: aload         7
    1081: aload         40
    1083: aload         42
    1085: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1090: pop
    1091: goto          1041
    1094: iload         18
    1096: iload_1
    1097: if_icmpne     1104
    1100: iconst_1
    1101: goto          1105
    1104: iconst_0
    1105: ifeq          1114
    1108: iload         8
    1110: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1113: areturn
    1114: aload_2
    1115: ldc           #163                // int 43
    1117: aaload
    1118: aload         5
    1120: iconst_0
    1121: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1124: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1129: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1132: istore        43
    1134: iconst_0
    1135: istore        44
    1137: iload         44
    1139: iload         18
    1141: if_icmpge     1148
    1144: iconst_1
    1145: goto          1149
    1148: iconst_0
    1149: ifeq          1223
    1152: aload_2
    1153: ldc           #164                // int 44
    1155: aaload
    1156: iload         44
    1158: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1161: iconst_1
    1162: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1165: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1170: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1173: istore        45
    1175: aload_2
    1176: ldc           #165                // int 45
    1178: aaload
    1179: aload         5
    1181: iload         45
    1183: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1186: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1191: astore        46
    1193: aload_2
    1194: ldc           #166                // int 46
    1196: aaload
    1197: aload         5
    1199: iload         44
    1201: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1204: aload         46
    1206: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1211: pop
    1212: iload         45
    1214: istore        47
    1216: iload         47
    1218: istore        44
    1220: goto          1137
    1223: iload         43
    1225: istore        48
    1227: aload_2
    1228: ldc           #167                // int 47
    1230: aaload
    1231: aload         5
    1233: iload         18
    1235: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1238: iload         48
    1240: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1243: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1248: pop
    1249: aload_2
    1250: ldc           #168                // int 48
    1252: aaload
    1253: aload_2
    1254: ldc           #169                // int 49
    1256: aaload
    1257: aload         6
    1259: iload         18
    1261: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1264: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1269: iconst_1
    1270: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1273: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1278: astore        49
    1280: aload_2
    1281: ldc           #170                // int 50
    1283: aaload
    1284: aload         6
    1286: iload         18
    1288: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1291: aload         49
    1293: invokeinterface #37,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1298: pop
    1299: aload_2
    1300: ldc           #171                // int 51
    1302: aaload
    1303: aload         6
    1305: iload         18
    1307: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1310: invokeinterface #68,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1315: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1318: iconst_0
    1319: if_icmple     1326
    1322: iconst_1
    1323: goto          1327
    1326: iconst_0
    1327: ifeq          1333
    1330: goto          1361
    1333: iload         18
    1335: dup
    1336: istore        50
    1338: aload_2
    1339: ldc           #172                // int 52
    1341: aaload
    1342: swap
    1343: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1346: invokeinterface #111,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1351: dup
    1352: invokestatic  #104                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1355: istore        18
    1357: pop
    1358: goto          1094
    1361: goto          319
    1364: aconst_null
    1365: areturn
    1366: aconst_null
    1367: areturn

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #196                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class fannkuch
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #200                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #202                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #196                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #208                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #202                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #211                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Invoke Dynamic

          Compiled from "fannkuch.groovy"
public class fannkuch extends groovy.lang.Script {
  public static transient boolean __$stMC;

  public fannkuch();
    Code:
       0: aload_0
       1: invokespecial #13                 // Method groovy/lang/Script."<init>":()V
       4: return

  public fannkuch(groovy.lang.Binding);
    Code:
       0: aload_0
       1: aload_1
       2: invokespecial #18                 // Method groovy/lang/Script."<init>":(Lgroovy/lang/Binding;)V
       5: return

  public static void main(java.lang.String...);
    Code:
       0: ldc           #24                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class fannkuch
       4: aload_0
       5: invokedynamic #38,  0             // InvokeDynamic #0:invoke:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
      10: pop
      11: return

  public java.lang.Object run();
    Code:
       0: bipush        7
       2: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       5: astore_1
       6: aload_0
       7: invokedynamic #54,  0             // InvokeDynamic #1:getProperty:(Lfannkuch;)Ljava/lang/Object;
      12: invokedynamic #59,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      17: iconst_0
      18: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      21: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
      24: ifeq          49
      27: ldc           #44                 // class java/lang/Integer
      29: aload_0
      30: invokedynamic #54,  0             // InvokeDynamic #1:getProperty:(Lfannkuch;)Ljava/lang/Object;
      35: iconst_0
      36: invokedynamic #70,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      41: invokedynamic #75,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
      46: astore_2
      47: aload_2
      48: astore_1
      49: aload_0
      50: ldc           #79                 // String Pfannkuchen(
      52: aload_1
      53: invokedynamic #84,  0             // InvokeDynamic #5:invoke:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
      58: ldc           #86                 // String ) =
      60: invokedynamic #89,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
      65: aload_0
      66: aload_1
      67: invokedynamic #94,  0             // InvokeDynamic #6:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
      72: invokedynamic #97,  0             // InvokeDynamic #5:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      77: invokedynamic #100,  0            // InvokeDynamic #7:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
      82: areturn
      83: nop
      84: athrow

  public java.lang.Object fannkuch(int);
    Code:
       0: iconst_0
       1: istore_2
       2: iload_1
       3: multianewarray #107,  1           // class "[I"
       7: astore_3
       8: iload_1
       9: multianewarray #107,  1           // class "[I"
      13: astore        4
      15: iload_1
      16: multianewarray #107,  1           // class "[I"
      20: astore        5
      22: iload_1
      23: multianewarray #107,  1           // class "[I"
      27: astore        6
      29: iconst_0
      30: istore        7
      32: iload_1
      33: iconst_1
      34: invokedynamic #112,  0            // InvokeDynamic #8:invoke:(II)Ljava/lang/Object;
      39: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
      42: istore        8
      44: aconst_null
      45: astore        9
      47: iconst_0
      48: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      51: iload_1
      52: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      55: ldc           #34                 // int 0
      57: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
      60: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
      65: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
      70: astore        10
      72: aload         10
      74: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      79: ifeq          110
      82: aload         10
      84: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      89: astore        9
      91: aload         9
      93: astore        11
      95: aload         4
      97: aload         9
      99: aload         11
     101: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     106: pop
     107: goto          72
     110: iload_1
     111: istore        12
     113: iload_2
     114: bipush        30
     116: if_icmpge     123
     119: iconst_1
     120: goto          124
     123: iconst_0
     124: ifeq          223
     127: aconst_null
     128: astore        13
     130: iconst_0
     131: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     134: iload_1
     135: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     138: ldc           #34                 // int 0
     140: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     143: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     148: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     153: astore        14
     155: aload         14
     157: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     162: ifeq          199
     165: aload         14
     167: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     172: astore        13
     174: aload_0
     175: aload         4
     177: aload         13
     179: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     184: iconst_1
     185: invokedynamic #151,  0            // InvokeDynamic #5:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     190: invokedynamic #154,  0            // InvokeDynamic #12:invoke:(Lfannkuch;Ljava/lang/Object;)Ljava/lang/Object;
     195: pop
     196: goto          155
     199: aload_0
     200: ldc           #156                // String \n
     202: invokedynamic #159,  0            // InvokeDynamic #12:invoke:(Lfannkuch;Ljava/lang/String;)Ljava/lang/Object;
     207: pop
     208: iload_2
     209: dup
     210: istore        15
     212: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     217: dup
     218: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     221: istore_2
     222: pop
     223: iload         12
     225: iconst_1
     226: if_icmpeq     233
     229: iconst_1
     230: goto          234
     233: iconst_0
     234: ifeq          279
     237: iload         12
     239: istore        16
     241: aload         5
     243: iload         12
     245: iconst_1
     246: invokedynamic #112,  0            // InvokeDynamic #8:invoke:(II)Ljava/lang/Object;
     251: iload         16
     253: invokedynamic #165,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;I)Ljava/lang/Object;
     258: pop
     259: iload         12
     261: dup
     262: istore        17
     264: invokedynamic #168,  0            // InvokeDynamic #14:invoke:(I)Ljava/lang/Object;
     269: dup
     270: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     273: istore        12
     275: pop
     276: goto          223
     279: aload         4
     281: iconst_0
     282: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     287: iconst_0
     288: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     291: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     294: ifne          317
     297: aload         4
     299: iload         8
     301: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     306: iload         8
     308: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     311: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     314: ifeq          321
     317: iconst_1
     318: goto          322
     321: iconst_0
     322: ifne          329
     325: iconst_1
     326: goto          330
     329: iconst_0
     330: ifeq          697
     333: aconst_null
     334: astore        18
     336: iconst_0
     337: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     340: iload_1
     341: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     344: ldc           #34                 // int 0
     346: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     349: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     354: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     359: astore        19
     361: aload         19
     363: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     368: ifeq          405
     371: aload         19
     373: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     378: astore        18
     380: aload         4
     382: aload         18
     384: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     389: astore        20
     391: aload_3
     392: aload         18
     394: aload         20
     396: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     401: pop
     402: goto          361
     405: iconst_0
     406: istore        21
     408: ldc           #34                 // int 0
     410: istore        22
     412: aload_3
     413: iconst_0
     414: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     419: astore        23
     421: aload         23
     423: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     426: istore        22
     428: aload         23
     430: iconst_0
     431: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     434: invokestatic  #174                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     437: ifne          444
     440: iconst_1
     441: goto          445
     444: iconst_0
     445: ifeq          601
     448: iload         22
     450: iconst_1
     451: invokedynamic #175,  0            // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     456: iconst_1
     457: invokedynamic #178,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     462: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     465: istore        24
     467: aconst_null
     468: astore        25
     470: iconst_0
     471: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     474: iload         24
     476: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     479: ldc           #34                 // int 0
     481: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     484: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     489: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     494: astore        26
     496: aload         26
     498: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     503: ifeq          581
     506: aload         26
     508: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     513: astore        25
     515: aload_3
     516: aload         25
     518: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     523: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     526: istore        27
     528: aload_3
     529: iload         22
     531: aload         25
     533: invokedynamic #181,  0            // InvokeDynamic #8:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     538: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     543: astore        28
     545: aload_3
     546: aload         25
     548: aload         28
     550: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     555: pop
     556: iload         27
     558: istore        29
     560: aload_3
     561: iload         22
     563: aload         25
     565: invokedynamic #181,  0            // InvokeDynamic #8:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     570: iload         29
     572: invokedynamic #165,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;I)Ljava/lang/Object;
     577: pop
     578: goto          496
     581: iload         21
     583: dup
     584: istore        30
     586: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     591: dup
     592: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     595: istore        21
     597: pop
     598: goto          412
     601: iload         21
     603: iload         7
     605: if_icmple     612
     608: iconst_1
     609: goto          613
     612: iconst_0
     613: ifeq          697
     616: iload         21
     618: istore        31
     620: iload         31
     622: istore        7
     624: aconst_null
     625: astore        32
     627: iconst_0
     628: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     631: iload_1
     632: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     635: ldc           #34                 // int 0
     637: invokestatic  #122                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createRange:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/util/List;
     640: invokedynamic #127,  0            // InvokeDynamic #9:invoke:(Lgroovy/lang/Range;)Ljava/lang/Object;
     645: invokedynamic #133,  0            // InvokeDynamic #10:cast:(Ljava/lang/Object;)Ljava/util/Iterator;
     650: astore        33
     652: aload         33
     654: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     659: ifeq          697
     662: aload         33
     664: invokeinterface #142,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     669: astore        32
     671: aload         4
     673: aload         32
     675: invokedynamic #150,  0            // InvokeDynamic #3:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
     680: astore        34
     682: aload         6
     684: aload         32
     686: aload         34
     688: invokedynamic #147,  0            // InvokeDynamic #11:invoke:([ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     693: pop
     694: goto          652
     697: iload         12
     699: iload_1
     700: if_icmpne     707
     703: iconst_1
     704: goto          708
     707: iconst_0
     708: ifeq          717
     711: iload         7
     713: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     716: areturn
     717: aload         4
     719: iconst_0
     720: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     725: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     728: istore        35
     730: iconst_0
     731: istore        36
     733: iload         36
     735: iload         12
     737: if_icmpge     744
     740: iconst_1
     741: goto          745
     744: iconst_0
     745: ifeq          795
     748: iload         36
     750: iconst_1
     751: invokedynamic #175,  0            // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     756: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     759: istore        37
     761: aload         4
     763: iload         37
     765: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     770: astore        38
     772: aload         4
     774: iload         36
     776: aload         38
     778: invokedynamic #184,  0            // InvokeDynamic #11:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
     783: pop
     784: iload         37
     786: istore        39
     788: iload         39
     790: istore        36
     792: goto          733
     795: iload         35
     797: istore        40
     799: aload         4
     801: iload         12
     803: iload         40
     805: invokedynamic #187,  0            // InvokeDynamic #11:invoke:([III)Ljava/lang/Object;
     810: pop
     811: aload         5
     813: iload         12
     815: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     820: iconst_1
     821: invokedynamic #188,  0            // InvokeDynamic #8:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     826: astore        41
     828: aload         5
     830: iload         12
     832: aload         41
     834: invokedynamic #184,  0            // InvokeDynamic #11:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
     839: pop
     840: aload         5
     842: iload         12
     844: invokedynamic #171,  0            // InvokeDynamic #3:invoke:([II)Ljava/lang/Object;
     849: iconst_0
     850: invokestatic  #48                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     853: invokestatic  #65                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     856: ifeq          862
     859: goto          882
     862: iload         12
     864: dup
     865: istore        42
     867: invokedynamic #162,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     872: dup
     873: invokestatic  #118                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     876: istore        12
     878: pop
     879: goto          697
     882: goto          113
     885: nop
     886: athrow
     887: nop
     888: athrow

  protected groovy.lang.MetaClass $getStaticMetaClass();
    Code:
       0: aload_0
       1: invokevirtual #210                // Method java/lang/Object.getClass:()Ljava/lang/Class;
       4: ldc           #2                  // class fannkuch
       6: if_acmpeq     14
       9: aload_0
      10: invokestatic  #214                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
      13: areturn
      14: getstatic     #216                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      17: astore_1
      18: aload_1
      19: ifnonnull     34
      22: aload_0
      23: invokevirtual #210                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      26: invokestatic  #222                // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
      29: dup
      30: astore_1
      31: putstatic     #216                // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
      34: aload_1
      35: invokevirtual #225                // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
      38: areturn
}

        

Static Compilation