Bytecode Analysis for script: eachloop

        List numbers = [1, 2, 3]
List results = []
numbers.each {
    results << it * 2
}

      
Groovyc Indy Static
Lines Removed 6 6 6
Total Lines - Before 272 166 182
Percentage of Lines Removed 2.2 3.6 3.3

Benchmarks

For parameter: 1000

Groovyc Indy Static
Benchmark Average - Before 413 448 321
Benchmark Average - After 411 446 321
Benchmark Std Dev - Before 4.2 8.05 5.55
Benchmark Std Dev - After 6.36 5.83 4.7

For parameter: 100000

Groovyc Indy Static
Benchmark Average - Before 414 441 319
Benchmark Average - After 409 447 319
Benchmark Std Dev - Before 6.41 8.67 5.22
Benchmark Std Dev - After 6.58 7.76 4.15

For parameter: 1000000

Groovyc Indy Static
Benchmark Average - Before 418 441 322
Benchmark Average - After 416 446 321
Benchmark Std Dev - Before 6.06 6.96 3.54
Benchmark Std Dev - After 9.41 7.06 4.0

For parameter: 100000000

Groovyc Indy Static
Benchmark Average - Before 415 443 320
Benchmark Average - After 413 445 319
Benchmark Std Dev - Before 5.98 7.3 3.43
Benchmark Std Dev - After 5.63 4.49 3.83

For parameter: 100000000000

Groovyc Indy Static
Benchmark Average - Before 416 442 321
Benchmark Average - After 413 444 321
Benchmark Std Dev - Before 7.7 8.12 4.1
Benchmark Std Dev - After 5.55 5.76 4.91

BEFORE

Groovyc (Legacy)

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

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

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

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

  public java.lang.Object run();
    Code:
       0: invokestatic  #17                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: iconst_3
       5: anewarray     #41                 // class java/lang/Object
       8: dup
       9: iconst_0
      10: iconst_1
      11: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      14: aastore
      15: dup
      16: iconst_1
      17: iconst_2
      18: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      21: aastore
      22: dup
      23: iconst_2
      24: iconst_3
      25: invokestatic  #47                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      28: aastore
      29: invokestatic  #53                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      32: astore_2
      33: aload_2
      34: pop
      35: iconst_0
      36: anewarray     #41                 // class java/lang/Object
      39: invokestatic  #53                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      42: new           #55                 // class groovy/lang/Reference
      45: dup_x1
      46: swap
      47: invokespecial #58                 // Method groovy/lang/Reference."<init>":(Ljava/lang/Object;)V
      50: astore_3
      51: aload_3
      52: pop
      53: aload_1
      54: ldc           #59                 // int 1
      56: aaload
      57: aload_2
      58: new           #61                 // class eachloop$_run_closure1
      61: dup
      62: aload_0
      63: aload_0
      64: aload_3
      65: invokespecial #64                 // Method eachloop$_run_closure1."<init>":(Ljava/lang/Object;Ljava/lang/Object;Lgroovy/lang/Reference;)V
      68: invokeinterface #67,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      73: areturn
      74: aconst_null
      75: areturn

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

        

Invoke Dynamic

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

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

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

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

  public java.lang.Object run();
    Code:
       0: iconst_3
       1: anewarray     #44                 // class java/lang/Object
       4: dup
       5: iconst_0
       6: iconst_1
       7: invokestatic  #50                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      10: aastore
      11: dup
      12: iconst_1
      13: iconst_2
      14: invokestatic  #50                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aastore
      18: dup
      19: iconst_2
      20: iconst_3
      21: invokestatic  #50                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      24: aastore
      25: invokestatic  #56                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      28: astore_1
      29: aload_1
      30: pop
      31: iconst_0
      32: anewarray     #44                 // class java/lang/Object
      35: invokestatic  #56                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      38: new           #58                 // class groovy/lang/Reference
      41: dup_x1
      42: swap
      43: invokespecial #61                 // Method groovy/lang/Reference."<init>":(Ljava/lang/Object;)V
      46: astore_2
      47: aload_2
      48: pop
      49: aload_1
      50: new           #63                 // class eachloop$_run_closure1
      53: dup
      54: aload_0
      55: aload_0
      56: aload_2
      57: invokespecial #66                 // Method eachloop$_run_closure1."<init>":(Ljava/lang/Object;Ljava/lang/Object;Lgroovy/lang/Reference;)V
      60: invokedynamic #71,  0             // InvokeDynamic #1:invoke:(Ljava/util/List;Lgroovy/lang/Closure;)Ljava/lang/Object;
      65: areturn
      66: nop
      67: athrow

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

        

Static Compilation

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

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

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

  public static void main(java.lang.String...);
    Code:
       0: ldc           #2                  // class eachloop
       2: aload_0
       3: invokestatic  #28                 // Method org/codehaus/groovy/runtime/InvokerHelper.runScript:(Ljava/lang/Class;[Ljava/lang/String;)Ljava/lang/Object;
       6: pop
       7: return

  public java.lang.Object run();
    Code:
       0: iconst_3
       1: anewarray     #34                 // class java/lang/Object
       4: dup
       5: iconst_0
       6: iconst_1
       7: invokestatic  #40                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      10: aastore
      11: dup
      12: iconst_1
      13: iconst_2
      14: invokestatic  #40                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      17: aastore
      18: dup
      19: iconst_2
      20: iconst_3
      21: invokestatic  #40                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      24: aastore
      25: invokestatic  #46                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      28: astore_1
      29: aload_1
      30: pop
      31: iconst_0
      32: anewarray     #34                 // class java/lang/Object
      35: invokestatic  #46                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.createList:([Ljava/lang/Object;)Ljava/util/List;
      38: new           #48                 // class groovy/lang/Reference
      41: dup_x1
      42: swap
      43: invokespecial #51                 // Method groovy/lang/Reference."<init>":(Ljava/lang/Object;)V
      46: astore_2
      47: aload_2
      48: pop
      49: aload_1
      50: new           #53                 // class eachloop$_run_closure1
      53: dup
      54: aload_0
      55: aload_0
      56: aload_2
      57: invokespecial #56                 // Method eachloop$_run_closure1."<init>":(Ljava/lang/Object;Ljava/lang/Object;Lgroovy/lang/Reference;)V
      60: invokestatic  #62                 // Method org/codehaus/groovy/runtime/DefaultGroovyMethods.each:(Ljava/util/List;Lgroovy/lang/Closure;)Ljava/util/List;
      63: areturn
      64: aconst_null
      65: areturn

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

        

AFTER

Groovyc (Legacy)

          Compiled from "eachloop.groovy"
public class eachloop$_run_closure1 extends groovy.lang.Closure implements org.codehaus.groovy.runtime.GeneratedClosure {
  public static transient boolean __$stMC;

  public eachloop$_run_closure1(java.lang.Object, java.lang.Object, groovy.lang.Reference);
    Code:
       0: invokestatic  #27                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore        4
       5: aload_0
       6: aload_1
       7: aload_2
       8: invokespecial #30                 // Method groovy/lang/Closure."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
      11: aload_3
      12: astore        5
      14: aload         5
      16: aload_0
      17: swap
      18: putfield      #32                 // Field results:Lgroovy/lang/Reference;
      21: return

  public java.lang.Object doCall(java.lang.Object);
    Code:
       0: invokestatic  #27                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_2
       4: aload_2
       5: ldc           #40                 // int 0
       7: aaload
       8: aload_0
       9: getfield      #32                 // Field results:Lgroovy/lang/Reference;
      12: invokevirtual #45                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
      15: aload_2
      16: ldc           #46                 // int 1
      18: aaload
      19: aload_1
      20: iconst_2
      21: invokestatic  #52                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      24: invokeinterface #58,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      29: invokeinterface #58,  3           // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      34: areturn
      35: aconst_null
      36: areturn

  public java.util.List getResults();
    Code:
       0: invokestatic  #27                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_0
       5: getfield      #32                 // Field results:Lgroovy/lang/Reference;
       8: invokevirtual #45                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
      11: ldc           #63                 // class java/util/List
      13: invokestatic  #69                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      16: checkcast     #63                 // class java/util/List
      19: areturn
      20: aconst_null
      21: areturn

  public java.lang.Object doCall();
    Code:
       0: invokestatic  #27                 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
       3: astore_1
       4: aload_0
       5: aconst_null
       6: invokevirtual #71                 // Method doCall:(Ljava/lang/Object;)Ljava/lang/Object;
       9: areturn
      10: aconst_null
      11: areturn

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

        

Invoke Dynamic

          Compiled from "eachloop.groovy"
public class eachloop$_run_closure1 extends groovy.lang.Closure implements org.codehaus.groovy.runtime.GeneratedClosure {
  public static transient boolean __$stMC;

  public eachloop$_run_closure1(java.lang.Object, java.lang.Object, groovy.lang.Reference);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokespecial #24                 // Method groovy/lang/Closure."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
       6: aload_3
       7: astore        4
       9: aload         4
      11: aload_0
      12: swap
      13: putfield      #26                 // Field results:Lgroovy/lang/Reference;
      16: return

  public java.lang.Object doCall(java.lang.Object);
    Code:
       0: aload_0
       1: getfield      #26                 // Field results:Lgroovy/lang/Reference;
       4: invokevirtual #38                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
       7: aload_1
       8: iconst_2
       9: invokedynamic #52,  0             // InvokeDynamic #0:invoke:(Ljava/lang/Object;I)Ljava/lang/Object;
      14: invokedynamic #57,  0             // InvokeDynamic #1:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      19: areturn
      20: nop
      21: athrow

  public java.util.List getResults();
    Code:
       0: aload_0
       1: getfield      #26                 // Field results:Lgroovy/lang/Reference;
       4: invokevirtual #38                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
       7: invokedynamic #68,  0             // InvokeDynamic #2:cast:(Ljava/lang/Object;)Ljava/util/List;
      12: areturn
      13: nop
      14: athrow

  public java.lang.Object doCall();
    Code:
       0: aload_0
       1: aconst_null
       2: invokevirtual #70                 // Method doCall:(Ljava/lang/Object;)Ljava/lang/Object;
       5: areturn
       6: nop
       7: athrow

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

        

Static Compilation

          Compiled from "eachloop.groovy"
public class eachloop$_run_closure1 extends groovy.lang.Closure implements org.codehaus.groovy.runtime.GeneratedClosure {
  public static transient boolean __$stMC;

  public eachloop$_run_closure1(java.lang.Object, java.lang.Object, groovy.lang.Reference);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokespecial #24                 // Method groovy/lang/Closure."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
       6: aload_3
       7: astore        4
       9: aload         4
      11: aload_0
      12: swap
      13: putfield      #26                 // Field results:Lgroovy/lang/Reference;
      16: return

  public java.lang.Object doCall(java.lang.Object);
    Code:
       0: aload_0
       1: getfield      #26                 // Field results:Lgroovy/lang/Reference;
       4: invokevirtual #38                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
       7: ldc           #40                 // class java/util/List
       9: invokestatic  #46                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      12: checkcast     #40                 // class java/util/List
      15: aload_1
      16: ldc           #48                 // class java/lang/Number
      18: invokestatic  #46                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      21: checkcast     #48                 // class java/lang/Number
      24: iconst_2
      25: invokestatic  #54                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      28: invokestatic  #60                 // Method org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.multiply:(Ljava/lang/Number;Ljava/lang/Number;)Ljava/lang/Number;
      31: invokestatic  #66                 // Method org/codehaus/groovy/runtime/DefaultGroovyMethods.leftShift:(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
      34: areturn
      35: aconst_null
      36: areturn

  public java.util.List getResults();
    Code:
       0: aload_0
       1: getfield      #26                 // Field results:Lgroovy/lang/Reference;
       4: invokevirtual #38                 // Method groovy/lang/Reference.get:()Ljava/lang/Object;
       7: ldc           #40                 // class java/util/List
       9: invokestatic  #46                 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.castToType:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
      12: checkcast     #40                 // class java/util/List
      15: areturn
      16: aconst_null
      17: areturn

  public java.lang.Object call(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokevirtual #72                 // Method doCall:(Ljava/lang/Object;)Ljava/lang/Object;
       5: areturn
       6: aconst_null
       7: areturn

  public java.lang.Object call();
    Code:
       0: aload_0
       1: aconst_null
       2: invokevirtual #72                 // Method doCall:(Ljava/lang/Object;)Ljava/lang/Object;
       5: areturn
       6: aconst_null
       7: areturn

  public java.lang.Object doCall();
    Code:
       0: aload_0
       1: aconst_null
       2: invokevirtual #72                 // Method doCall:(Ljava/lang/Object;)Ljava/lang/Object;
       5: areturn
       6: aconst_null
       7: areturn

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