Bytecode Analysis for script: mandelbrot

        /*
 * The Computer Language Shootout
 * http://shootout.alioth.debian.org/
 *
 * contributed by Jochen Hinrichsen
 */

double Cr, Ci, Tr, Ti, Zr = 0, Zi = 0, limit_sq = 4.0
int res, i = 0, x = 0, y = 0, pos = 0, acc = 1, iter = 50
res = (args.length >= 1) ? Integer.parseInt(args[0], 10) : 200
int max = (res * res) >>> 3
def pbm_data = new byte[max]
String pbm_header = new String('P4' + ((char) 012) + res + ' ' + res + ((char) 012))

System.out.write(pbm_header.getBytes(), 0, pbm_header.length())

while (pos < max) {
    Cr = (2*((double)x++)/res - 1.5)
    Ci = (2*((double)y)/res - 1)

    acc <<= 1
    while (((acc & 1) == 0) && (i++ < iter)) {
        Tr = Zr*Zr - Zi*Zi + Cr
        Ti = 2*Zr*Zi + Ci
        Zr = Tr
        Zi = Ti

        acc |= (Zr*Zr+Zi*Zi > limit_sq) ? 1 : 0
    }

    if (x == res) {
        y++
        if (acc < 256) acc <<= (8 - res % 8)
    }

    if (acc > 255) {
        pbm_data[pos++] = (byte) (acc ^= 255)
        acc = 1
    }

    x %= res
    Zr = Zi = i = 0
}

System.out.write(pbm_data, 0, pos)

      
Groovyc Indy Static
Lines Removed 44 42 0
Total Lines - Before 993 544 0
Percentage of Lines Removed 4.4 7.7 Error

Benchmarks

For parameter: 1

Groovyc Indy Static
Benchmark Average - Before 435 480 N/A
Benchmark Average - After 444 482 N/A
Benchmark Std Dev - Before 6.78 14.64 N/A
Benchmark Std Dev - After 23.42 10.28 N/A

For parameter: 10

Groovyc Indy Static
Benchmark Average - Before 446 577 N/A
Benchmark Average - After 453 569 N/A
Benchmark Std Dev - Before 8.47 29.04 N/A
Benchmark Std Dev - After 10.83 19.27 N/A

BEFORE

Groovyc (Legacy)

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

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

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

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #20                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #30                 // int 0
       7: aaload
       8: ldc           #32                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class mandelbrot
      12: aload_0
      13: invokeinterface #38,  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  #20                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: dconst_0
       5: dstore_2
       6: dload_2
       7: pop2
       8: dconst_0
       9: dstore        4
      11: dload         4
      13: pop2
      14: dconst_0
      15: dstore        6
      17: dload         6
      19: pop2
      20: dconst_0
      21: dstore        8
      23: dload         8
      25: pop2
      26: iconst_0
      27: i2d
      28: dstore        10
      30: dload         10
      32: pop2
      33: iconst_0
      34: i2d
      35: dstore        12
      37: dload         12
      39: pop2
      40: getstatic     #44                 // Field $const$0:Ljava/math/BigDecimal;
      43: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
      46: dstore        14
      48: dload         14
      50: pop2
      51: ldc           #30                 // int 0
      53: istore        16
      55: iload         16
      57: pop
      58: iconst_0
      59: istore        17
      61: iload         17
      63: pop
      64: iconst_0
      65: istore        18
      67: iload         18
      69: pop
      70: iconst_0
      71: istore        19
      73: iload         19
      75: pop
      76: iconst_0
      77: istore        20
      79: iload         20
      81: pop
      82: iconst_1
      83: istore        21
      85: iload         21
      87: pop
      88: bipush        50
      90: istore        22
      92: iload         22
      94: pop
      95: aload_1
      96: ldc           #51                 // int 1
      98: aaload
      99: aload_1
     100: ldc           #52                 // int 2
     102: aaload
     103: aload_0
     104: invokeinterface #56,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     109: invokeinterface #59,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     114: iconst_1
     115: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     118: invokestatic  #71                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThanEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     121: ifeq          166
     124: aload_1
     125: ldc           #72                 // int 3
     127: aaload
     128: ldc           #61                 // class java/lang/Integer
     130: aload_1
     131: ldc           #73                 // int 4
     133: aaload
     134: aload_1
     135: ldc           #74                 // int 5
     137: aaload
     138: aload_0
     139: invokeinterface #56,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     144: iconst_0
     145: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     148: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     153: bipush        10
     155: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     158: invokeinterface #38,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     163: goto          172
     166: sipush        200
     169: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     172: astore        23
     174: aload         23
     176: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     179: istore        16
     181: aload         23
     183: pop
     184: ldc           #30                 // int 0
     186: istore        24
     188: invokestatic  #87                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     191: ifeq          209
     194: getstatic     #89                 // Field __$stMC:Z
     197: ifne          209
     200: invokestatic  #92                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     203: ifne          209
     206: goto          256
     209: aload_1
     210: ldc           #93                 // int 6
     212: aaload
     213: aload_1
     214: ldc           #94                 // int 7
     216: aaload
     217: iload         16
     219: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     222: iload         16
     224: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     227: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     232: iconst_3
     233: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     236: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     241: astore        25
     243: aload         25
     245: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     248: istore        24
     250: aload         25
     252: pop
     253: goto          272
     256: iload         16
     258: iload         16
     260: imul
     261: iconst_3
     262: iushr
     263: istore        26
     265: iload         26
     267: istore        24
     269: iload         26
     271: pop
     272: iload         24
     274: multianewarray #96,  1            // class "[B"
     278: astore        27
     280: aload         27
     282: pop
     283: aload_1
     284: ldc           #97                 // int 8
     286: aaload
     287: ldc           #99                 // class java/lang/String
     289: aload_1
     290: ldc           #100                // int 9
     292: aaload
     293: aload_1
     294: ldc           #101                // int 10
     296: aaload
     297: aload_1
     298: ldc           #102                // int 11
     300: aaload
     301: aload_1
     302: ldc           #103                // int 12
     304: aaload
     305: aload_1
     306: ldc           #104                // int 13
     308: aaload
     309: ldc           #106                // String P4
     311: bipush        10
     313: i2c
     314: invokestatic  #111                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     317: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     322: iload         16
     324: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     327: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     332: ldc           #113                // String
     334: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     339: iload         16
     341: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     344: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     349: bipush        10
     351: i2c
     352: invokestatic  #111                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     355: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     360: invokeinterface #116,  3          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callConstructor:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     365: invokestatic  #122                // Method org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.castToString:(Ljava/lang/Object;)Ljava/lang/String;
     368: checkcast     #99                 // class java/lang/String
     371: astore        28
     373: aload         28
     375: pop
     376: aload_1
     377: ldc           #123                // int 14
     379: aaload
     380: aload_1
     381: ldc           #124                // int 15
     383: aaload
     384: ldc           #126                // class java/lang/System
     386: invokeinterface #59,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     391: aload_1
     392: ldc           #127                // int 16
     394: aaload
     395: aload         28
     397: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     402: iconst_0
     403: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     406: aload_1
     407: ldc           #130                // int 17
     409: aaload
     410: aload         28
     412: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     417: invokeinterface #133,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     422: pop
     423: iload         20
     425: iload         24
     427: if_icmpge     434
     430: iconst_1
     431: goto          435
     434: iconst_0
     435: ifeq          1208
     438: aload_1
     439: ldc           #134                // int 18
     441: aaload
     442: aload_1
     443: ldc           #135                // int 19
     445: aaload
     446: aload_1
     447: ldc           #136                // int 20
     449: aaload
     450: iconst_2
     451: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     454: iload         18
     456: dup
     457: istore        29
     459: aload_1
     460: ldc           #137                // int 21
     462: aaload
     463: swap
     464: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     467: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     472: dup
     473: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     476: istore        18
     478: pop
     479: iload         29
     481: i2d
     482: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     485: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     490: iload         16
     492: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     495: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     500: getstatic     #144                // Field $const$1:Ljava/math/BigDecimal;
     503: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     508: astore        30
     510: aload         30
     512: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     515: dstore_2
     516: aload         30
     518: pop
     519: aload_1
     520: ldc           #145                // int 22
     522: aaload
     523: aload_1
     524: ldc           #146                // int 23
     526: aaload
     527: aload_1
     528: ldc           #147                // int 24
     530: aaload
     531: iconst_2
     532: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     535: iload         19
     537: i2d
     538: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     541: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     546: iload         16
     548: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     551: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     556: iconst_1
     557: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     560: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     565: astore        31
     567: aload         31
     569: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     572: dstore        4
     574: aload         31
     576: pop
     577: aload_1
     578: ldc           #148                // int 25
     580: aaload
     581: iload         21
     583: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     586: iconst_1
     587: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     590: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     595: dup
     596: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     599: istore        21
     601: pop
     602: aload_1
     603: ldc           #149                // int 26
     605: aaload
     606: iload         21
     608: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     611: iconst_1
     612: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     615: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     620: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     623: iconst_0
     624: if_icmpne     631
     627: iconst_1
     628: goto          632
     631: iconst_0
     632: ifeq          679
     635: iload         17
     637: dup
     638: istore        32
     640: aload_1
     641: ldc           #150                // int 27
     643: aaload
     644: swap
     645: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     648: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     653: dup
     654: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     657: istore        17
     659: pop
     660: iload         32
     662: iload         22
     664: if_icmpge     671
     667: iconst_1
     668: goto          672
     671: iconst_0
     672: ifeq          679
     675: iconst_1
     676: goto          680
     679: iconst_0
     680: ifeq          931
     683: aload_1
     684: ldc           #151                // int 28
     686: aaload
     687: aload_1
     688: ldc           #152                // int 29
     690: aaload
     691: aload_1
     692: ldc           #153                // int 30
     694: aaload
     695: dload         10
     697: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     700: dload         10
     702: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     705: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     710: aload_1
     711: ldc           #154                // int 31
     713: aaload
     714: dload         12
     716: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     719: dload         12
     721: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     724: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     729: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     734: dload_2
     735: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     738: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     743: astore        33
     745: aload         33
     747: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     750: dstore        6
     752: aload         33
     754: pop
     755: aload_1
     756: ldc           #155                // int 32
     758: aaload
     759: aload_1
     760: ldc           #156                // int 33
     762: aaload
     763: aload_1
     764: ldc           #157                // int 34
     766: aaload
     767: iconst_2
     768: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     771: dload         10
     773: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     776: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     781: dload         12
     783: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     786: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     791: dload         4
     793: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     796: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     801: astore        34
     803: aload         34
     805: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     808: dstore        8
     810: aload         34
     812: pop
     813: dload         6
     815: dstore        35
     817: dload         35
     819: dstore        10
     821: dload         35
     823: pop2
     824: dload         8
     826: dstore        37
     828: dload         37
     830: dstore        12
     832: dload         37
     834: pop2
     835: aload_1
     836: ldc           #158                // int 35
     838: aaload
     839: iload         21
     841: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     844: aload_1
     845: ldc           #159                // int 36
     847: aaload
     848: aload_1
     849: ldc           #160                // int 37
     851: aaload
     852: dload         10
     854: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     857: dload         10
     859: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     862: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     867: aload_1
     868: ldc           #161                // int 38
     870: aaload
     871: dload         12
     873: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     876: dload         12
     878: invokestatic  #142                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     881: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     886: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     891: invokestatic  #50                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     894: dload         14
     896: dcmpg
     897: ifle          904
     900: iconst_1
     901: goto          905
     904: iconst_0
     905: ifeq          912
     908: iconst_1
     909: goto          913
     912: iconst_0
     913: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     916: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     921: dup
     922: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     925: istore        21
     927: pop
     928: goto          602
     931: iload         18
     933: iload         16
     935: if_icmpne     942
     938: iconst_1
     939: goto          943
     942: iconst_0
     943: ifeq          1044
     946: iload         19
     948: dup
     949: istore        39
     951: aload_1
     952: ldc           #162                // int 39
     954: aaload
     955: swap
     956: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     959: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     964: dup
     965: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     968: istore        19
     970: pop
     971: iload         39
     973: pop
     974: iload         21
     976: sipush        256
     979: if_icmpge     986
     982: iconst_1
     983: goto          987
     986: iconst_0
     987: ifeq          1044
     990: aload_1
     991: ldc           #163                // int 40
     993: aaload
     994: iload         21
     996: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     999: aload_1
    1000: ldc           #164                // int 41
    1002: aaload
    1003: bipush        8
    1005: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1008: aload_1
    1009: ldc           #165                // int 42
    1011: aaload
    1012: iload         16
    1014: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1017: bipush        8
    1019: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1022: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1027: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1032: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1037: dup
    1038: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1041: istore        21
    1043: pop
    1044: iload         21
    1046: sipush        255
    1049: if_icmple     1056
    1052: iconst_1
    1053: goto          1057
    1056: iconst_0
    1057: ifeq          1151
    1060: aload_1
    1061: ldc           #166                // int 43
    1063: aaload
    1064: iload         21
    1066: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1069: sipush        255
    1072: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1075: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1080: dup
    1081: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1084: istore        21
    1086: invokestatic  #170                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.byteUnbox:(Ljava/lang/Object;)B
    1089: istore        40
    1091: aload_1
    1092: ldc           #171                // int 44
    1094: aaload
    1095: aload         27
    1097: iload         20
    1099: dup
    1100: istore        41
    1102: aload_1
    1103: ldc           #172                // int 45
    1105: aaload
    1106: swap
    1107: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1110: invokeinterface #129,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1115: dup
    1116: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1119: istore        20
    1121: pop
    1122: iload         41
    1124: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1127: iload         40
    1129: invokestatic  #177                // Method java/lang/Byte.valueOf:(B)Ljava/lang/Byte;
    1132: invokeinterface #38,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1137: pop
    1138: iload         40
    1140: pop
    1141: iconst_1
    1142: istore        42
    1144: iload         42
    1146: istore        21
    1148: iload         42
    1150: pop
    1151: aload_1
    1152: ldc           #178                // int 46
    1154: aaload
    1155: iload         18
    1157: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1160: iload         16
    1162: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1165: invokeinterface #77,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1170: dup
    1171: invokestatic  #81                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1174: istore        18
    1176: pop
    1177: iconst_0
    1178: istore        43
    1180: iload         43
    1182: istore        17
    1184: iload         43
    1186: istore        44
    1188: iload         44
    1190: i2d
    1191: dstore        12
    1193: iload         44
    1195: istore        45
    1197: iload         45
    1199: i2d
    1200: dstore        10
    1202: iload         45
    1204: pop
    1205: goto          423
    1208: aload_1
    1209: ldc           #179                // int 47
    1211: aaload
    1212: aload_1
    1213: ldc           #180                // int 48
    1215: aaload
    1216: ldc           #126                // class java/lang/System
    1218: invokeinterface #59,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
    1223: aload         27
    1225: iconst_0
    1226: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1229: iload         20
    1231: invokestatic  #65                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1234: invokeinterface #133,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1239: areturn
    1240: aconst_null
    1241: areturn

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

  public static void __$swapInit();
    Code:
       0: invokestatic  #20                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_0
       4: aconst_null
       5: putstatic     #229                // Field $callSiteArray:Ljava/lang/ref/SoftReference;
       8: new           #231                // class java/math/BigDecimal
      11: dup
      12: ldc           #233                // String 4.0
      14: invokespecial #236                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      17: astore_1
      18: aload_1
      19: putstatic     #44                 // Field $const$0:Ljava/math/BigDecimal;
      22: aload_1
      23: pop
      24: new           #231                // class java/math/BigDecimal
      27: dup
      28: ldc           #238                // String 1.5
      30: invokespecial #236                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      33: astore_2
      34: aload_2
      35: putstatic     #144                // Field $const$1:Ljava/math/BigDecimal;
      38: aload_2
      39: pop
      40: return

  static {};
    Code:
       0: invokestatic  #241                // Method __$swapInit:()V
       3: return
}

        

Invoke Dynamic

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

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

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

  public static void main(java.lang.String...);
    Code:
       0: ldc           #27                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class mandelbrot
       4: aload_0
       5: invokedynamic #41,  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: dconst_0
       1: dstore_1
       2: dload_1
       3: pop2
       4: dconst_0
       5: dstore_3
       6: dload_3
       7: pop2
       8: dconst_0
       9: dstore        5
      11: dload         5
      13: pop2
      14: dconst_0
      15: dstore        7
      17: dload         7
      19: pop2
      20: iconst_0
      21: i2d
      22: dstore        9
      24: dload         9
      26: pop2
      27: iconst_0
      28: i2d
      29: dstore        11
      31: dload         11
      33: pop2
      34: getstatic     #47                 // Field $const$0:Ljava/math/BigDecimal;
      37: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
      40: dstore        13
      42: dload         13
      44: pop2
      45: ldc           #37                 // int 0
      47: istore        15
      49: iload         15
      51: pop
      52: iconst_0
      53: istore        16
      55: iload         16
      57: pop
      58: iconst_0
      59: istore        17
      61: iload         17
      63: pop
      64: iconst_0
      65: istore        18
      67: iload         18
      69: pop
      70: iconst_0
      71: istore        19
      73: iload         19
      75: pop
      76: iconst_1
      77: istore        20
      79: iload         20
      81: pop
      82: bipush        50
      84: istore        21
      86: iload         21
      88: pop
      89: aload_0
      90: invokedynamic #59,  0             // InvokeDynamic #1:getProperty:(Lmandelbrot;)Ljava/lang/Object;
      95: invokedynamic #64,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     100: iconst_1
     101: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     104: invokestatic  #76                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThanEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     107: ifeq          134
     110: ldc           #66                 // class java/lang/Integer
     112: aload_0
     113: invokedynamic #59,  0             // InvokeDynamic #1:getProperty:(Lmandelbrot;)Ljava/lang/Object;
     118: iconst_0
     119: invokedynamic #81,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     124: bipush        10
     126: invokedynamic #86,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Class;Ljava/lang/Object;I)Ljava/lang/Object;
     131: goto          140
     134: sipush        200
     137: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     140: astore        22
     142: aload         22
     144: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     147: istore        15
     149: aload         22
     151: pop
     152: iload         15
     154: iload         15
     156: invokedynamic #95,  0             // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     161: iconst_3
     162: invokedynamic #98,  0             // InvokeDynamic #6:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     167: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     170: istore        23
     172: iload         23
     174: pop
     175: iload         23
     177: multianewarray #100,  1           // class "[B"
     181: astore        24
     183: aload         24
     185: pop
     186: ldc           #102                // class java/lang/String
     188: ldc           #104                // String P4
     190: bipush        10
     192: i2c
     193: invokestatic  #109                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     196: getstatic     #113                // Field java/lang/Character.TYPE:Ljava/lang/Class;
     199: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     202: invokedynamic #122,  0            // InvokeDynamic #7:invoke:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     207: iload         15
     209: invokedynamic #123,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     214: ldc           #125                // String
     216: invokedynamic #128,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
     221: iload         15
     223: invokedynamic #123,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     228: bipush        10
     230: i2c
     231: invokestatic  #109                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     234: getstatic     #113                // Field java/lang/Character.TYPE:Ljava/lang/Class;
     237: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     240: invokedynamic #131,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Lorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     245: invokedynamic #136,  0            // InvokeDynamic #8:init:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
     250: invokedynamic #142,  0            // InvokeDynamic #9:cast:(Ljava/lang/Object;)Ljava/lang/String;
     255: astore        25
     257: aload         25
     259: pop
     260: ldc           #144                // class java/lang/System
     262: invokedynamic #149,  0            // InvokeDynamic #10:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
     267: aload         25
     269: invokedynamic #154,  0            // InvokeDynamic #11:invoke:(Ljava/lang/String;)Ljava/lang/Object;
     274: iconst_0
     275: aload         25
     277: invokedynamic #155,  0            // InvokeDynamic #2:invoke:(Ljava/lang/String;)Ljava/lang/Object;
     282: invokedynamic #160,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
     287: pop
     288: iload         19
     290: iload         23
     292: if_icmpge     299
     295: iconst_1
     296: goto          300
     299: iconst_0
     300: ifeq          839
     303: iconst_2
     304: iload         17
     306: dup
     307: istore        26
     309: invokedynamic #165,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     314: dup
     315: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     318: istore        17
     320: pop
     321: iload         26
     323: i2d
     324: invokestatic  #170                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     327: getstatic     #171                // Field java/lang/Double.TYPE:Ljava/lang/Class;
     330: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     333: invokedynamic #174,  0            // InvokeDynamic #5:invoke:(ILorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     338: iload         15
     340: invokedynamic #177,  0            // InvokeDynamic #14:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     345: getstatic     #179                // Field $const$1:Ljava/math/BigDecimal;
     348: invokedynamic #184,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;Ljava/math/BigDecimal;)Ljava/lang/Object;
     353: astore        27
     355: aload         27
     357: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     360: dstore_1
     361: aload         27
     363: pop
     364: iconst_2
     365: iload         18
     367: i2d
     368: invokestatic  #170                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     371: getstatic     #171                // Field java/lang/Double.TYPE:Ljava/lang/Class;
     374: invokestatic  #117                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     377: invokedynamic #174,  0            // InvokeDynamic #5:invoke:(ILorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     382: iload         15
     384: invokedynamic #177,  0            // InvokeDynamic #14:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     389: iconst_1
     390: invokedynamic #185,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     395: astore        28
     397: aload         28
     399: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     402: dstore_3
     403: aload         28
     405: pop
     406: iload         20
     408: iconst_1
     409: invokedynamic #188,  0            // InvokeDynamic #16:invoke:(II)Ljava/lang/Object;
     414: dup
     415: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     418: istore        20
     420: pop
     421: iload         20
     423: iconst_1
     424: invokedynamic #191,  0            // InvokeDynamic #17:invoke:(II)Ljava/lang/Object;
     429: iconst_0
     430: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     433: invokestatic  #194                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     436: ifeq          476
     439: iload         16
     441: dup
     442: istore        29
     444: invokedynamic #165,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     449: dup
     450: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     453: istore        16
     455: pop
     456: iload         29
     458: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     461: iload         21
     463: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     466: invokestatic  #197                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareLessThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     469: ifeq          476
     472: iconst_1
     473: goto          477
     476: iconst_0
     477: ifeq          632
     480: dload         9
     482: dload         9
     484: invokedynamic #200,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     489: dload         11
     491: dload         11
     493: invokedynamic #200,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     498: invokedynamic #203,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     503: dload_1
     504: invokedynamic #206,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     509: astore        30
     511: aload         30
     513: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     516: dstore        5
     518: aload         30
     520: pop
     521: iconst_2
     522: dload         9
     524: invokedynamic #209,  0            // InvokeDynamic #5:invoke:(ID)Ljava/lang/Object;
     529: dload         11
     531: invokedynamic #210,  0            // InvokeDynamic #5:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     536: dload_3
     537: invokedynamic #206,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     542: astore        31
     544: aload         31
     546: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     549: dstore        7
     551: aload         31
     553: pop
     554: dload         5
     556: dstore        32
     558: dload         32
     560: dstore        9
     562: dload         32
     564: pop2
     565: dload         7
     567: dstore        34
     569: dload         34
     571: dstore        11
     573: dload         34
     575: pop2
     576: iload         20
     578: dload         9
     580: dload         9
     582: invokedynamic #200,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     587: dload         11
     589: dload         11
     591: invokedynamic #200,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     596: invokedynamic #211,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     601: dload         13
     603: invokestatic  #170                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     606: invokestatic  #214                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     609: ifeq          616
     612: iconst_1
     613: goto          617
     616: iconst_0
     617: invokedynamic #217,  0            // InvokeDynamic #18:invoke:(II)Ljava/lang/Object;
     622: dup
     623: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     626: istore        20
     628: pop
     629: goto          421
     632: iload         17
     634: iload         15
     636: if_icmpne     643
     639: iconst_1
     640: goto          644
     643: iconst_0
     644: ifeq          713
     647: iload         18
     649: dup
     650: istore        36
     652: invokedynamic #165,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     657: dup
     658: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     661: istore        18
     663: pop
     664: iload         36
     666: pop
     667: iload         20
     669: sipush        256
     672: if_icmpge     679
     675: iconst_1
     676: goto          680
     679: iconst_0
     680: ifeq          713
     683: iload         20
     685: bipush        8
     687: iload         15
     689: bipush        8
     691: invokedynamic #220,  0            // InvokeDynamic #19:invoke:(II)Ljava/lang/Object;
     696: invokedynamic #223,  0            // InvokeDynamic #15:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     701: invokedynamic #224,  0            // InvokeDynamic #16:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     706: dup
     707: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     710: istore        20
     712: pop
     713: iload         20
     715: sipush        255
     718: if_icmple     725
     721: iconst_1
     722: goto          726
     725: iconst_0
     726: ifeq          792
     729: iload         20
     731: sipush        255
     734: invokedynamic #227,  0            // InvokeDynamic #20:invoke:(II)Ljava/lang/Object;
     739: dup
     740: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     743: istore        20
     745: invokestatic  #231                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.byteUnbox:(Ljava/lang/Object;)B
     748: istore        37
     750: aload         24
     752: iload         19
     754: dup
     755: istore        38
     757: invokedynamic #165,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     762: dup
     763: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     766: istore        19
     768: pop
     769: iload         38
     771: iload         37
     773: invokedynamic #236,  0            // InvokeDynamic #21:invoke:(Ljava/lang/Object;IB)Ljava/lang/Object;
     778: pop
     779: iload         37
     781: pop
     782: iconst_1
     783: istore        39
     785: iload         39
     787: istore        20
     789: iload         39
     791: pop
     792: iload         17
     794: iload         15
     796: invokedynamic #220,  0            // InvokeDynamic #19:invoke:(II)Ljava/lang/Object;
     801: dup
     802: invokestatic  #90                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     805: istore        17
     807: pop
     808: iconst_0
     809: istore        40
     811: iload         40
     813: istore        16
     815: iload         40
     817: istore        41
     819: iload         41
     821: i2d
     822: dstore        11
     824: iload         41
     826: istore        42
     828: iload         42
     830: i2d
     831: dstore        9
     833: iload         42
     835: pop
     836: goto          288
     839: ldc           #144                // class java/lang/System
     841: invokedynamic #149,  0            // InvokeDynamic #10:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
     846: aload         24
     848: iconst_0
     849: iload         19
     851: invokedynamic #239,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;II)Ljava/lang/Object;
     856: areturn
     857: nop
     858: athrow

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

  public static void __$swapInit();
    Code:
       0: new           #288                // class java/math/BigDecimal
       3: dup
       4: ldc_w         #290                // String 4.0
       7: invokespecial #293                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      10: astore_0
      11: aload_0
      12: putstatic     #47                 // Field $const$0:Ljava/math/BigDecimal;
      15: aload_0
      16: pop
      17: new           #288                // class java/math/BigDecimal
      20: dup
      21: ldc_w         #295                // String 1.5
      24: invokespecial #293                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      27: astore_1
      28: aload_1
      29: putstatic     #179                // Field $const$1:Ljava/math/BigDecimal;
      32: aload_1
      33: pop
      34: return

  static {};
    Code:
       0: invokestatic  #298                // Method __$swapInit:()V
       3: return
}

        

Static Compilation

          org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/mandelbrot.groovy: 10: [Static type checking] - The variable [args] is undeclared.
 @ line 10, column 8.
   res = (args.length >= 1) ? Integer.parseInt(args[0], 10) : 200
          ^

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/mandelbrot.groovy: 10: [Static type checking] - Cannot find matching method java.lang.Object#compareTo(int). Please check if the declared type is right and if the method exists.
 @ line 10, column 7.
   res = (args.length >= 1) ? Integer.parseInt(args[0], 10) : 200
         ^

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

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

/Users/jstrater/Documents/dev/groovy-compiler-project/build/resources/test/scripts/mandelbrot.groovy: 10: [Static type checking] - Cannot assign value of type java.lang.Object to variable of type int
 @ line 10, column 26.
   res = (args.length >= 1) ? Integer.parseInt(args[0], 10) : 200
                            ^

5 errors


        

AFTER

Groovyc (Legacy)

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

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

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

  public static void main(java.lang.String...);
    Code:
       0: invokestatic  #22                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_1
       5: ldc           #32                 // int 0
       7: aaload
       8: ldc           #34                 // class org/codehaus/groovy/runtime/InvokerHelper
      10: ldc           #2                  // class mandelbrot
      12: aload_0
      13: invokeinterface #40,  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  #22                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: dconst_0
       5: dstore_2
       6: dload_2
       7: pop2
       8: dconst_0
       9: dstore        4
      11: dload         4
      13: pop2
      14: dconst_0
      15: dstore        6
      17: dload         6
      19: pop2
      20: dconst_0
      21: dstore        8
      23: dload         8
      25: pop2
      26: iconst_0
      27: i2d
      28: dstore        10
      30: dload         10
      32: pop2
      33: iconst_0
      34: i2d
      35: dstore        12
      37: dload         12
      39: pop2
      40: getstatic     #46                 // Field $const$0:Ljava/math/BigDecimal;
      43: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
      46: dstore        14
      48: dload         14
      50: pop2
      51: ldc           #32                 // int 0
      53: istore        16
      55: iconst_0
      56: istore        17
      58: iconst_0
      59: istore        18
      61: iconst_0
      62: istore        19
      64: iconst_0
      65: istore        20
      67: iconst_1
      68: istore        21
      70: bipush        50
      72: istore        22
      74: aload_1
      75: ldc           #53                 // int 1
      77: aaload
      78: aload_1
      79: ldc           #54                 // int 2
      81: aaload
      82: aload_0
      83: invokeinterface #58,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      88: invokeinterface #61,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      93: iconst_1
      94: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      97: invokestatic  #73                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThanEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     100: ifeq          145
     103: aload_1
     104: ldc           #74                 // int 3
     106: aaload
     107: ldc           #63                 // class java/lang/Integer
     109: aload_1
     110: ldc           #75                 // int 4
     112: aaload
     113: aload_1
     114: ldc           #76                 // int 5
     116: aaload
     117: aload_0
     118: invokeinterface #58,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGroovyObjectGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     123: iconst_0
     124: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     127: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     132: bipush        10
     134: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     137: invokeinterface #40,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     142: goto          151
     145: sipush        200
     148: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     151: astore        23
     153: aload         23
     155: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     158: istore        16
     160: ldc           #32                 // int 0
     162: istore        24
     164: invokestatic  #89                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
     167: ifeq          185
     170: getstatic     #91                 // Field __$stMC:Z
     173: ifne          185
     176: invokestatic  #94                 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
     179: ifne          185
     182: goto          229
     185: aload_1
     186: ldc           #95                 // int 6
     188: aaload
     189: aload_1
     190: ldc           #96                 // int 7
     192: aaload
     193: iload         16
     195: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     198: iload         16
     200: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     203: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     208: iconst_3
     209: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     212: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     217: astore        25
     219: aload         25
     221: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     224: istore        24
     226: goto          242
     229: iload         16
     231: iload         16
     233: imul
     234: iconst_3
     235: iushr
     236: istore        26
     238: iload         26
     240: istore        24
     242: iload         24
     244: multianewarray #98,  1            // class "[B"
     248: astore        27
     250: aload_1
     251: ldc           #99                 // int 8
     253: aaload
     254: ldc           #101                // class java/lang/String
     256: aload_1
     257: ldc           #102                // int 9
     259: aaload
     260: aload_1
     261: ldc           #103                // int 10
     263: aaload
     264: aload_1
     265: ldc           #104                // int 11
     267: aaload
     268: aload_1
     269: ldc           #105                // int 12
     271: aaload
     272: aload_1
     273: ldc           #106                // int 13
     275: aaload
     276: ldc           #108                // String P4
     278: bipush        10
     280: i2c
     281: invokestatic  #113                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     284: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     289: iload         16
     291: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     294: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     299: ldc           #115                // String
     301: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     306: iload         16
     308: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     311: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     316: bipush        10
     318: i2c
     319: invokestatic  #113                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     322: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     327: invokeinterface #118,  3          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callConstructor:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     332: invokestatic  #124                // Method org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.castToString:(Ljava/lang/Object;)Ljava/lang/String;
     335: checkcast     #101                // class java/lang/String
     338: astore        28
     340: aload_1
     341: ldc           #125                // int 14
     343: aaload
     344: aload_1
     345: ldc           #126                // int 15
     347: aaload
     348: ldc           #128                // class java/lang/System
     350: invokeinterface #61,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
     355: aload_1
     356: ldc           #129                // int 16
     358: aaload
     359: aload         28
     361: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     366: iconst_0
     367: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     370: aload_1
     371: ldc           #132                // int 17
     373: aaload
     374: aload         28
     376: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     381: invokeinterface #135,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     386: pop
     387: iload         20
     389: iload         24
     391: if_icmpge     398
     394: iconst_1
     395: goto          399
     398: iconst_0
     399: ifeq          1148
     402: aload_1
     403: ldc           #136                // int 18
     405: aaload
     406: aload_1
     407: ldc           #137                // int 19
     409: aaload
     410: aload_1
     411: ldc           #138                // int 20
     413: aaload
     414: iconst_2
     415: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     418: iload         18
     420: dup
     421: istore        29
     423: aload_1
     424: ldc           #139                // int 21
     426: aaload
     427: swap
     428: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     431: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     436: dup
     437: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     440: istore        18
     442: pop
     443: iload         29
     445: i2d
     446: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     449: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     454: iload         16
     456: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     459: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     464: getstatic     #146                // Field $const$1:Ljava/math/BigDecimal;
     467: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     472: astore        30
     474: aload         30
     476: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     479: dstore_2
     480: aload_1
     481: ldc           #147                // int 22
     483: aaload
     484: aload_1
     485: ldc           #148                // int 23
     487: aaload
     488: aload_1
     489: ldc           #149                // int 24
     491: aaload
     492: iconst_2
     493: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     496: iload         19
     498: i2d
     499: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     502: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     507: iload         16
     509: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     512: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     517: iconst_1
     518: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     521: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     526: astore        31
     528: aload         31
     530: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     533: dstore        4
     535: aload_1
     536: ldc           #150                // int 25
     538: aaload
     539: iload         21
     541: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     544: iconst_1
     545: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     548: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     553: dup
     554: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     557: istore        21
     559: pop
     560: aload_1
     561: ldc           #151                // int 26
     563: aaload
     564: iload         21
     566: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     569: iconst_1
     570: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     573: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     578: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     581: iconst_0
     582: if_icmpne     589
     585: iconst_1
     586: goto          590
     589: iconst_0
     590: ifeq          637
     593: iload         17
     595: dup
     596: istore        32
     598: aload_1
     599: ldc           #152                // int 27
     601: aaload
     602: swap
     603: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     606: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     611: dup
     612: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     615: istore        17
     617: pop
     618: iload         32
     620: iload         22
     622: if_icmpge     629
     625: iconst_1
     626: goto          630
     629: iconst_0
     630: ifeq          637
     633: iconst_1
     634: goto          638
     637: iconst_0
     638: ifeq          883
     641: aload_1
     642: ldc           #153                // int 28
     644: aaload
     645: aload_1
     646: ldc           #154                // int 29
     648: aaload
     649: aload_1
     650: ldc           #155                // int 30
     652: aaload
     653: dload         10
     655: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     658: dload         10
     660: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     663: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     668: aload_1
     669: ldc           #156                // int 31
     671: aaload
     672: dload         12
     674: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     677: dload         12
     679: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     682: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     687: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     692: dload_2
     693: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     696: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     701: astore        33
     703: aload         33
     705: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     708: dstore        6
     710: aload_1
     711: ldc           #157                // int 32
     713: aaload
     714: aload_1
     715: ldc           #158                // int 33
     717: aaload
     718: aload_1
     719: ldc           #159                // int 34
     721: aaload
     722: iconst_2
     723: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     726: dload         10
     728: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     731: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     736: dload         12
     738: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     741: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     746: dload         4
     748: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     751: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     756: astore        34
     758: aload         34
     760: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     763: dstore        8
     765: dload         6
     767: dstore        35
     769: dload         35
     771: dstore        10
     773: dload         35
     775: pop2
     776: dload         8
     778: dstore        37
     780: dload         37
     782: dstore        12
     784: dload         37
     786: pop2
     787: aload_1
     788: ldc           #160                // int 35
     790: aaload
     791: iload         21
     793: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     796: aload_1
     797: ldc           #161                // int 36
     799: aaload
     800: aload_1
     801: ldc           #162                // int 37
     803: aaload
     804: dload         10
     806: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     809: dload         10
     811: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     814: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     819: aload_1
     820: ldc           #163                // int 38
     822: aaload
     823: dload         12
     825: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     828: dload         12
     830: invokestatic  #144                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     833: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     838: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     843: invokestatic  #52                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     846: dload         14
     848: dcmpg
     849: ifle          856
     852: iconst_1
     853: goto          857
     856: iconst_0
     857: ifeq          864
     860: iconst_1
     861: goto          865
     864: iconst_0
     865: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     868: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     873: dup
     874: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     877: istore        21
     879: pop
     880: goto          560
     883: iload         18
     885: iload         16
     887: if_icmpne     894
     890: iconst_1
     891: goto          895
     894: iconst_0
     895: ifeq          993
     898: iload         19
     900: dup
     901: istore        39
     903: aload_1
     904: ldc           #164                // int 39
     906: aaload
     907: swap
     908: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     911: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
     916: dup
     917: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     920: istore        19
     922: pop
     923: iload         21
     925: sipush        256
     928: if_icmpge     935
     931: iconst_1
     932: goto          936
     935: iconst_0
     936: ifeq          993
     939: aload_1
     940: ldc           #165                // int 40
     942: aaload
     943: iload         21
     945: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     948: aload_1
     949: ldc           #166                // int 41
     951: aaload
     952: bipush        8
     954: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     957: aload_1
     958: ldc           #167                // int 42
     960: aaload
     961: iload         16
     963: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     966: bipush        8
     968: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     971: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     976: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     981: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     986: dup
     987: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     990: istore        21
     992: pop
     993: iload         21
     995: sipush        255
     998: if_icmple     1005
    1001: iconst_1
    1002: goto          1006
    1005: iconst_0
    1006: ifeq          1094
    1009: aload_1
    1010: ldc           #168                // int 43
    1012: aaload
    1013: iload         21
    1015: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1018: sipush        255
    1021: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1024: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1029: dup
    1030: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1033: istore        21
    1035: invokestatic  #172                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.byteUnbox:(Ljava/lang/Object;)B
    1038: istore        40
    1040: aload_1
    1041: ldc           #173                // int 44
    1043: aaload
    1044: aload         27
    1046: iload         20
    1048: dup
    1049: istore        41
    1051: aload_1
    1052: ldc           #174                // int 45
    1054: aaload
    1055: swap
    1056: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1059: invokeinterface #131,  2          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
    1064: dup
    1065: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1068: istore        20
    1070: pop
    1071: iload         41
    1073: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1076: iload         40
    1078: invokestatic  #179                // Method java/lang/Byte.valueOf:(B)Ljava/lang/Byte;
    1081: invokeinterface #40,  4           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1086: pop
    1087: iconst_1
    1088: istore        42
    1090: iload         42
    1092: istore        21
    1094: aload_1
    1095: ldc           #180                // int 46
    1097: aaload
    1098: iload         18
    1100: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1103: iload         16
    1105: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1108: invokeinterface #79,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1113: dup
    1114: invokestatic  #83                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
    1117: istore        18
    1119: pop
    1120: iconst_0
    1121: istore        43
    1123: iload         43
    1125: istore        17
    1127: iload         43
    1129: istore        44
    1131: iload         44
    1133: i2d
    1134: dstore        12
    1136: iload         44
    1138: istore        45
    1140: iload         45
    1142: i2d
    1143: dstore        10
    1145: goto          387
    1148: aload_1
    1149: ldc           #181                // int 47
    1151: aaload
    1152: aload_1
    1153: ldc           #182                // int 48
    1155: aaload
    1156: ldc           #128                // class java/lang/System
    1158: invokeinterface #61,  2           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
    1163: aload         27
    1165: iconst_0
    1166: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1169: iload         20
    1171: invokestatic  #67                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1174: invokeinterface #135,  5          // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1179: areturn
    1180: aconst_null
    1181: areturn

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

  public static void __$swapInit();
    Code:
       0: invokestatic  #22                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_0
       4: aconst_null
       5: putstatic     #229                // Field $callSiteArray:Ljava/lang/ref/SoftReference;
       8: new           #231                // class java/math/BigDecimal
      11: dup
      12: ldc           #233                // String 4.0
      14: invokespecial #236                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      17: astore_1
      18: aload_1
      19: putstatic     #46                 // Field $const$0:Ljava/math/BigDecimal;
      22: new           #231                // class java/math/BigDecimal
      25: dup
      26: ldc           #238                // String 1.5
      28: invokespecial #236                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      31: astore_2
      32: aload_2
      33: putstatic     #146                // Field $const$1:Ljava/math/BigDecimal;
      36: return

  static {};
    Code:
       0: invokestatic  #241                // Method __$swapInit:()V
       3: return
}

        

Invoke Dynamic

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

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

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

  public static void main(java.lang.String...);
    Code:
       0: ldc           #27                 // class org/codehaus/groovy/runtime/InvokerHelper
       2: ldc           #2                  // class mandelbrot
       4: aload_0
       5: invokedynamic #41,  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: dconst_0
       1: dstore_1
       2: dload_1
       3: pop2
       4: dconst_0
       5: dstore_3
       6: dload_3
       7: pop2
       8: dconst_0
       9: dstore        5
      11: dload         5
      13: pop2
      14: dconst_0
      15: dstore        7
      17: dload         7
      19: pop2
      20: iconst_0
      21: i2d
      22: dstore        9
      24: dload         9
      26: pop2
      27: iconst_0
      28: i2d
      29: dstore        11
      31: dload         11
      33: pop2
      34: getstatic     #47                 // Field $const$0:Ljava/math/BigDecimal;
      37: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
      40: dstore        13
      42: dload         13
      44: pop2
      45: ldc           #37                 // int 0
      47: istore        15
      49: iconst_0
      50: istore        16
      52: iconst_0
      53: istore        17
      55: iconst_0
      56: istore        18
      58: iconst_0
      59: istore        19
      61: iconst_1
      62: istore        20
      64: bipush        50
      66: istore        21
      68: aload_0
      69: invokedynamic #59,  0             // InvokeDynamic #1:getProperty:(Lmandelbrot;)Ljava/lang/Object;
      74: invokedynamic #64,  0             // InvokeDynamic #2:getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
      79: iconst_1
      80: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      83: invokestatic  #76                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThanEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      86: ifeq          113
      89: ldc           #66                 // class java/lang/Integer
      91: aload_0
      92: invokedynamic #59,  0             // InvokeDynamic #1:getProperty:(Lmandelbrot;)Ljava/lang/Object;
      97: iconst_0
      98: invokedynamic #81,  0             // InvokeDynamic #3:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     103: bipush        10
     105: invokedynamic #86,  0             // InvokeDynamic #4:invoke:(Ljava/lang/Class;Ljava/lang/Object;I)Ljava/lang/Object;
     110: goto          119
     113: sipush        200
     116: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     119: astore        22
     121: aload         22
     123: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     126: istore        15
     128: iload         15
     130: iload         15
     132: invokedynamic #97,  0             // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
     137: iconst_3
     138: invokedynamic #100,  0            // InvokeDynamic #6:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     143: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     146: istore        23
     148: iload         23
     150: multianewarray #102,  1           // class "[B"
     154: astore        24
     156: ldc           #104                // class java/lang/String
     158: ldc           #106                // String P4
     160: bipush        10
     162: i2c
     163: invokestatic  #111                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     166: getstatic     #115                // Field java/lang/Character.TYPE:Ljava/lang/Class;
     169: invokestatic  #119                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     172: invokedynamic #124,  0            // InvokeDynamic #7:invoke:(Ljava/lang/String;Lorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     177: iload         15
     179: invokedynamic #125,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     184: ldc           #127                // String
     186: invokedynamic #130,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
     191: iload         15
     193: invokedynamic #125,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     198: bipush        10
     200: i2c
     201: invokestatic  #111                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     204: getstatic     #115                // Field java/lang/Character.TYPE:Ljava/lang/Class;
     207: invokestatic  #119                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     210: invokedynamic #133,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Lorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     215: invokedynamic #138,  0            // InvokeDynamic #8:init:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
     220: invokedynamic #144,  0            // InvokeDynamic #9:cast:(Ljava/lang/Object;)Ljava/lang/String;
     225: astore        25
     227: ldc           #146                // class java/lang/System
     229: invokedynamic #151,  0            // InvokeDynamic #10:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
     234: aload         25
     236: invokedynamic #156,  0            // InvokeDynamic #11:invoke:(Ljava/lang/String;)Ljava/lang/Object;
     241: iconst_0
     242: aload         25
     244: invokedynamic #157,  0            // InvokeDynamic #2:invoke:(Ljava/lang/String;)Ljava/lang/Object;
     249: invokedynamic #162,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
     254: pop
     255: iload         19
     257: iload         23
     259: if_icmpge     266
     262: iconst_1
     263: goto          267
     266: iconst_0
     267: ifeq          782
     270: iconst_2
     271: iload         17
     273: dup
     274: istore        26
     276: invokedynamic #167,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     281: dup
     282: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     285: istore        17
     287: pop
     288: iload         26
     290: i2d
     291: invokestatic  #172                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     294: getstatic     #173                // Field java/lang/Double.TYPE:Ljava/lang/Class;
     297: invokestatic  #119                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     300: invokedynamic #176,  0            // InvokeDynamic #5:invoke:(ILorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     305: iload         15
     307: invokedynamic #179,  0            // InvokeDynamic #14:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     312: getstatic     #181                // Field $const$1:Ljava/math/BigDecimal;
     315: invokedynamic #186,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;Ljava/math/BigDecimal;)Ljava/lang/Object;
     320: astore        27
     322: aload         27
     324: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     327: dstore_1
     328: iconst_2
     329: iload         18
     331: i2d
     332: invokestatic  #172                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     335: getstatic     #173                // Field java/lang/Double.TYPE:Ljava/lang/Class;
     338: invokestatic  #119                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createPojoWrapper:(Ljava/lang/Object;Ljava/lang/Class;)Lorg/codehaus/groovy/runtime/wrappers/Wrapper;
     341: invokedynamic #176,  0            // InvokeDynamic #5:invoke:(ILorg/codehaus/groovy/runtime/wrappers/Wrapper;)Ljava/lang/Object;
     346: iload         15
     348: invokedynamic #179,  0            // InvokeDynamic #14:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     353: iconst_1
     354: invokedynamic #187,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
     359: astore        28
     361: aload         28
     363: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     366: dstore_3
     367: iload         20
     369: iconst_1
     370: invokedynamic #190,  0            // InvokeDynamic #16:invoke:(II)Ljava/lang/Object;
     375: dup
     376: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     379: istore        20
     381: pop
     382: iload         20
     384: iconst_1
     385: invokedynamic #193,  0            // InvokeDynamic #17:invoke:(II)Ljava/lang/Object;
     390: iconst_0
     391: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     394: invokestatic  #196                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     397: ifeq          437
     400: iload         16
     402: dup
     403: istore        29
     405: invokedynamic #167,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     410: dup
     411: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     414: istore        16
     416: pop
     417: iload         29
     419: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     422: iload         21
     424: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     427: invokestatic  #199                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareLessThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     430: ifeq          437
     433: iconst_1
     434: goto          438
     437: iconst_0
     438: ifeq          587
     441: dload         9
     443: dload         9
     445: invokedynamic #202,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     450: dload         11
     452: dload         11
     454: invokedynamic #202,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     459: invokedynamic #205,  0            // InvokeDynamic #15:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     464: dload_1
     465: invokedynamic #208,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     470: astore        30
     472: aload         30
     474: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     477: dstore        5
     479: iconst_2
     480: dload         9
     482: invokedynamic #211,  0            // InvokeDynamic #5:invoke:(ID)Ljava/lang/Object;
     487: dload         11
     489: invokedynamic #212,  0            // InvokeDynamic #5:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     494: dload_3
     495: invokedynamic #208,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;D)Ljava/lang/Object;
     500: astore        31
     502: aload         31
     504: invokestatic  #53                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.doubleUnbox:(Ljava/lang/Object;)D
     507: dstore        7
     509: dload         5
     511: dstore        32
     513: dload         32
     515: dstore        9
     517: dload         32
     519: pop2
     520: dload         7
     522: dstore        34
     524: dload         34
     526: dstore        11
     528: dload         34
     530: pop2
     531: iload         20
     533: dload         9
     535: dload         9
     537: invokedynamic #202,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     542: dload         11
     544: dload         11
     546: invokedynamic #202,  0            // InvokeDynamic #5:invoke:(DD)Ljava/lang/Object;
     551: invokedynamic #213,  0            // InvokeDynamic #7:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     556: dload         13
     558: invokestatic  #172                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;
     561: invokestatic  #216                // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.compareGreaterThan:(Ljava/lang/Object;Ljava/lang/Object;)Z
     564: ifeq          571
     567: iconst_1
     568: goto          572
     571: iconst_0
     572: invokedynamic #219,  0            // InvokeDynamic #18:invoke:(II)Ljava/lang/Object;
     577: dup
     578: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     581: istore        20
     583: pop
     584: goto          382
     587: iload         17
     589: iload         15
     591: if_icmpne     598
     594: iconst_1
     595: goto          599
     598: iconst_0
     599: ifeq          665
     602: iload         18
     604: dup
     605: istore        36
     607: invokedynamic #167,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     612: dup
     613: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     616: istore        18
     618: pop
     619: iload         20
     621: sipush        256
     624: if_icmpge     631
     627: iconst_1
     628: goto          632
     631: iconst_0
     632: ifeq          665
     635: iload         20
     637: bipush        8
     639: iload         15
     641: bipush        8
     643: invokedynamic #222,  0            // InvokeDynamic #19:invoke:(II)Ljava/lang/Object;
     648: invokedynamic #225,  0            // InvokeDynamic #15:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     653: invokedynamic #226,  0            // InvokeDynamic #16:invoke:(ILjava/lang/Object;)Ljava/lang/Object;
     658: dup
     659: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     662: istore        20
     664: pop
     665: iload         20
     667: sipush        255
     670: if_icmple     677
     673: iconst_1
     674: goto          678
     677: iconst_0
     678: ifeq          738
     681: iload         20
     683: sipush        255
     686: invokedynamic #229,  0            // InvokeDynamic #20:invoke:(II)Ljava/lang/Object;
     691: dup
     692: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     695: istore        20
     697: invokestatic  #233                // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.byteUnbox:(Ljava/lang/Object;)B
     700: istore        37
     702: aload         24
     704: iload         19
     706: dup
     707: istore        38
     709: invokedynamic #167,  0            // InvokeDynamic #13:invoke:(I)Ljava/lang/Object;
     714: dup
     715: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     718: istore        19
     720: pop
     721: iload         38
     723: iload         37
     725: invokedynamic #238,  0            // InvokeDynamic #21:invoke:(Ljava/lang/Object;IB)Ljava/lang/Object;
     730: pop
     731: iconst_1
     732: istore        39
     734: iload         39
     736: istore        20
     738: iload         17
     740: iload         15
     742: invokedynamic #222,  0            // InvokeDynamic #19:invoke:(II)Ljava/lang/Object;
     747: dup
     748: invokestatic  #92                 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
     751: istore        17
     753: pop
     754: iconst_0
     755: istore        40
     757: iload         40
     759: istore        16
     761: iload         40
     763: istore        41
     765: iload         41
     767: i2d
     768: dstore        11
     770: iload         41
     772: istore        42
     774: iload         42
     776: i2d
     777: dstore        9
     779: goto          255
     782: ldc           #146                // class java/lang/System
     784: invokedynamic #151,  0            // InvokeDynamic #10:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
     789: aload         24
     791: iconst_0
     792: iload         19
     794: invokedynamic #241,  0            // InvokeDynamic #12:invoke:(Ljava/lang/Object;Ljava/lang/Object;II)Ljava/lang/Object;
     799: areturn
     800: nop
     801: athrow

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

  public static void __$swapInit();
    Code:
       0: new           #288                // class java/math/BigDecimal
       3: dup
       4: ldc_w         #290                // String 4.0
       7: invokespecial #293                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      10: astore_0
      11: aload_0
      12: putstatic     #47                 // Field $const$0:Ljava/math/BigDecimal;
      15: new           #288                // class java/math/BigDecimal
      18: dup
      19: ldc_w         #295                // String 1.5
      22: invokespecial #293                // Method java/math/BigDecimal."<init>":(Ljava/lang/String;)V
      25: astore_1
      26: aload_1
      27: putstatic     #181                // Field $const$1:Ljava/math/BigDecimal;
      30: return

  static {};
    Code:
       0: invokestatic  #298                // Method __$swapInit:()V
       3: return
}

        

Static Compilation