// $Id: scripts.ary.java,v 1.1 2004-05-22 07:27:00 bfulgham Exp $
// http://www.bagley.org/~doug/shootout/
// this program is modified from:
// http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
// Timing Trials, or, the Trials of Timing: Experiments with Scripting
// and User-Interface Languages</a> by Brian W. Kernighan and
// Christopher J. Van Wyk.
public class ary {
public static void main(String[] args) {
int i, j, k, n = Integer.parseInt(args[0]);
int[] x = new int[n];
int[] y = new int[n];
for (i = 0; i < n; i++)
x[i] = i + 1;
for (k = 0; k < 1000; k++ )
for (j = n-1; j >= 0; j--)
y[j] += x[j];
System.out.println(y[0] + " " + y[n-1]);
}
}
Groovyc (Legacy)
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #17 // Method java/lang/Object."<init>":()V
4: invokestatic #21 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
7: astore_1
8: aload_0
9: invokevirtual #25 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
12: astore_2
13: aload_2
14: aload_0
15: swap
16: putfield #27 // Field metaClass:Lgroovy/lang/MetaClass;
19: aload_2
20: pop
21: return
public static void main(java.lang.String...);
Code:
0: invokestatic #21 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_1
4: ldc #32 // int 0
6: istore_2
7: iload_2
8: pop
9: ldc #32 // int 0
11: istore_3
12: iload_3
13: pop
14: ldc #32 // int 0
16: istore 4
18: iload 4
20: pop
21: ldc #32 // int 0
23: istore 5
25: invokestatic #38 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
28: ifeq 46
31: getstatic #40 // Field __$stMC:Z
34: ifne 46
37: invokestatic #43 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
40: ifne 46
43: goto 86
46: aload_1
47: ldc #32 // int 0
49: aaload
50: ldc #45 // class java/lang/Integer
52: aload_1
53: ldc #46 // int 1
55: aaload
56: aload_0
57: iconst_0
58: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
61: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
66: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
71: astore 6
73: aload 6
75: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
78: istore 5
80: aload 6
82: pop
83: goto 114
86: aload_1
87: ldc #63 // int 2
89: aaload
90: ldc #45 // class java/lang/Integer
92: aload_0
93: iconst_0
94: invokestatic #67 // Method org/codehaus/groovy/runtime/BytecodeInterface8.objectArrayGet:([Ljava/lang/Object;I)Ljava/lang/Object;
97: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
102: astore 7
104: aload 7
106: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
109: istore 5
111: aload 7
113: pop
114: iload 5
116: multianewarray #69, 1 // class "[I"
120: astore 8
122: aload 8
124: pop
125: iload 5
127: multianewarray #69, 1 // class "[I"
131: astore 9
133: aload 9
135: pop
136: invokestatic #38 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
139: ifeq 163
142: invokestatic #72 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigZ:()Z
145: ifeq 163
148: getstatic #40 // Field __$stMC:Z
151: ifne 163
154: invokestatic #43 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
157: ifne 163
160: goto 258
163: iconst_0
164: istore 10
166: iload 10
168: istore_2
169: iload 10
171: pop
172: iload_2
173: iload 5
175: if_icmpge 182
178: iconst_1
179: goto 183
182: iconst_0
183: ifeq 255
186: aload_1
187: ldc #73 // int 3
189: aaload
190: iload_2
191: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
194: iconst_1
195: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
198: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
203: astore 11
205: aload_1
206: ldc #74 // int 4
208: aaload
209: aload 8
211: iload_2
212: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
215: aload 11
217: invokeinterface #77, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
222: pop
223: aload 11
225: pop
226: iload_2
227: dup
228: istore 12
230: aload_1
231: ldc #78 // int 5
233: aaload
234: swap
235: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
238: invokeinterface #81, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
243: dup
244: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
247: istore_2
248: pop
249: iload 12
251: pop
252: goto 172
255: goto 312
258: iconst_0
259: istore 13
261: iload 13
263: istore_2
264: iload 13
266: pop
267: iload_2
268: iload 5
270: if_icmpge 277
273: iconst_1
274: goto 278
277: iconst_0
278: ifeq 312
281: iload_2
282: iconst_1
283: iadd
284: istore 14
286: aload 8
288: iload_2
289: iload 14
291: invokestatic #85 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
294: iload 14
296: pop
297: iload_2
298: dup
299: istore 15
301: iconst_1
302: iadd
303: dup
304: istore_2
305: pop
306: iload 15
308: pop
309: goto 267
312: invokestatic #38 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
315: ifeq 339
318: invokestatic #72 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigZ:()Z
321: ifeq 339
324: getstatic #40 // Field __$stMC:Z
327: ifne 339
330: invokestatic #43 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
333: ifne 339
336: goto 538
339: iconst_0
340: istore 16
342: iload 16
344: istore 4
346: iload 16
348: pop
349: iload 4
351: sipush 1000
354: if_icmpge 361
357: iconst_1
358: goto 362
361: iconst_0
362: ifeq 535
365: aload_1
366: ldc #86 // int 6
368: aaload
369: iload 5
371: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
374: iconst_1
375: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
378: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
383: astore 17
385: aload 17
387: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
390: istore_3
391: aload 17
393: pop
394: iload_3
395: iconst_0
396: if_icmplt 403
399: iconst_1
400: goto 404
403: iconst_0
404: ifeq 504
407: aload_1
408: ldc #87 // int 7
410: aaload
411: aload 9
413: dup
414: astore 18
416: iload_3
417: dup
418: istore 19
420: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
423: aload_1
424: ldc #88 // int 8
426: aaload
427: aload_1
428: ldc #89 // int 9
430: aaload
431: aload 18
433: iload 19
435: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
438: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
443: aload_1
444: ldc #90 // int 10
446: aaload
447: aload 8
449: iload_3
450: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
453: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
458: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
463: dup
464: astore 20
466: invokeinterface #77, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
471: pop
472: aload 20
474: pop
475: iload_3
476: dup
477: istore 21
479: aload_1
480: ldc #91 // int 11
482: aaload
483: swap
484: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
487: invokeinterface #81, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
492: dup
493: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
496: istore_3
497: pop
498: iload 21
500: pop
501: goto 394
504: iload 4
506: dup
507: istore 22
509: aload_1
510: ldc #92 // int 12
512: aaload
513: swap
514: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
517: invokeinterface #81, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
522: dup
523: invokestatic #62 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
526: istore 4
528: pop
529: iload 22
531: pop
532: goto 349
535: goto 651
538: iconst_0
539: istore 23
541: iload 23
543: istore 4
545: iload 23
547: pop
548: iload 4
550: sipush 1000
553: if_icmpge 560
556: iconst_1
557: goto 561
560: iconst_0
561: ifeq 651
564: iload 5
566: iconst_1
567: isub
568: istore 24
570: iload 24
572: istore_3
573: iload 24
575: pop
576: iload_3
577: iconst_0
578: if_icmplt 585
581: iconst_1
582: goto 586
585: iconst_0
586: ifeq 634
589: iload_3
590: istore 25
592: aload 9
594: dup
595: iload 25
597: invokestatic #96 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
600: aload 8
602: iload_3
603: invokestatic #96 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
606: iadd
607: dup
608: istore 26
610: iload 25
612: swap
613: invokestatic #85 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
616: iload 26
618: pop
619: iload_3
620: dup
621: istore 27
623: iconst_1
624: isub
625: dup
626: istore_3
627: pop
628: iload 27
630: pop
631: goto 576
634: iload 4
636: dup
637: istore 28
639: iconst_1
640: iadd
641: dup
642: istore 4
644: pop
645: iload 28
647: pop
648: goto 548
651: invokestatic #38 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
654: ifeq 672
657: getstatic #40 // Field __$stMC:Z
660: ifne 672
663: invokestatic #43 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
666: ifne 672
669: goto 760
672: aload_1
673: ldc #97 // int 13
675: aaload
676: aload_1
677: ldc #98 // int 14
679: aaload
680: ldc #100 // class java/lang/System
682: invokeinterface #103, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
687: aload_1
688: ldc #104 // int 15
690: aaload
691: aload_1
692: ldc #105 // int 16
694: aaload
695: aload_1
696: ldc #106 // int 17
698: aaload
699: aload 9
701: iconst_0
702: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
705: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
710: ldc #108 // String
712: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
717: aload_1
718: ldc #109 // int 18
720: aaload
721: aload 9
723: aload_1
724: ldc #110 // int 19
726: aaload
727: iload 5
729: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
732: iconst_1
733: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
736: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
741: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
746: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
751: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
756: pop
757: goto 822
760: aload_1
761: ldc #111 // int 20
763: aaload
764: aload_1
765: ldc #112 // int 21
767: aaload
768: ldc #100 // class java/lang/System
770: invokeinterface #103, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
775: aload_1
776: ldc #113 // int 22
778: aaload
779: aload_1
780: ldc #114 // int 23
782: aaload
783: aload 9
785: iconst_0
786: invokestatic #96 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
789: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
792: ldc #108 // String
794: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
799: aload 9
801: iload 5
803: iconst_1
804: isub
805: invokestatic #96 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
808: invokestatic #50 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
811: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
816: invokeinterface #56, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
821: pop
822: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #127 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #133 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #135 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #127 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #141 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #135 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #144 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #27 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #25 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #27 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #27 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #27 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #149 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #154, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #149 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #159, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #149 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #164, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}
Invoke Dynamic
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #17 // Method java/lang/Object."<init>":()V
4: aload_0
5: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
8: astore_1
9: aload_1
10: aload_0
11: swap
12: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
15: aload_1
16: pop
17: return
public static void main(java.lang.String...);
Code:
0: ldc #28 // int 0
2: istore_1
3: iload_1
4: pop
5: ldc #28 // int 0
7: istore_2
8: iload_2
9: pop
10: ldc #28 // int 0
12: istore_3
13: iload_3
14: pop
15: ldc #30 // class java/lang/Integer
17: aload_0
18: iconst_0
19: invokedynamic #43, 0 // InvokeDynamic #0:invoke:([Ljava/lang/String;I)Ljava/lang/Object;
24: invokedynamic #48, 0 // InvokeDynamic #1:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
29: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
32: istore 4
34: iload 4
36: pop
37: iload 4
39: multianewarray #56, 1 // class "[I"
43: astore 5
45: aload 5
47: pop
48: iload 4
50: multianewarray #56, 1 // class "[I"
54: astore 6
56: aload 6
58: pop
59: iconst_0
60: istore 7
62: iload 7
64: istore_1
65: iload 7
67: pop
68: iload_1
69: iload 4
71: if_icmpge 78
74: iconst_1
75: goto 79
78: iconst_0
79: ifeq 126
82: iload_1
83: iconst_1
84: invokedynamic #61, 0 // InvokeDynamic #2:invoke:(II)Ljava/lang/Object;
89: astore 8
91: aload 5
93: iload_1
94: aload 8
96: invokedynamic #66, 0 // InvokeDynamic #3:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
101: pop
102: aload 8
104: pop
105: iload_1
106: dup
107: istore 9
109: invokedynamic #71, 0 // InvokeDynamic #4:invoke:(I)Ljava/lang/Object;
114: dup
115: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
118: istore_1
119: pop
120: iload 9
122: pop
123: goto 68
126: iconst_0
127: istore 10
129: iload 10
131: istore_3
132: iload 10
134: pop
135: iload_3
136: sipush 1000
139: if_icmpge 146
142: iconst_1
143: goto 147
146: iconst_0
147: ifeq 267
150: iload 4
152: iconst_1
153: invokedynamic #74, 0 // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
158: astore 11
160: aload 11
162: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
165: istore_2
166: aload 11
168: pop
169: iload_2
170: iconst_0
171: if_icmplt 178
174: iconst_1
175: goto 179
178: iconst_0
179: ifeq 246
182: aload 6
184: dup
185: astore 12
187: iload_2
188: dup
189: istore 13
191: aload 12
193: iload 13
195: invokedynamic #77, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
200: aload 5
202: iload_2
203: invokedynamic #77, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
208: invokedynamic #80, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
213: dup
214: astore 14
216: invokedynamic #66, 0 // InvokeDynamic #3:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
221: pop
222: aload 14
224: pop
225: iload_2
226: dup
227: istore 15
229: invokedynamic #83, 0 // InvokeDynamic #6:invoke:(I)Ljava/lang/Object;
234: dup
235: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
238: istore_2
239: pop
240: iload 15
242: pop
243: goto 169
246: iload_3
247: dup
248: istore 16
250: invokedynamic #71, 0 // InvokeDynamic #4:invoke:(I)Ljava/lang/Object;
255: dup
256: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
259: istore_3
260: pop
261: iload 16
263: pop
264: goto 135
267: ldc #85 // class java/lang/System
269: invokedynamic #91, 0 // InvokeDynamic #7:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
274: aload 6
276: iconst_0
277: invokedynamic #77, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
282: ldc #93 // String
284: invokedynamic #96, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
289: aload 6
291: iload 4
293: iconst_1
294: invokedynamic #74, 0 // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
299: invokedynamic #99, 0 // InvokeDynamic #0:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
304: invokedynamic #80, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
309: invokedynamic #102, 0 // InvokeDynamic #8:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
314: pop
315: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #116 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #122 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #124 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #116 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #130 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #124 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #133 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #143, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #146, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #151, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}
Static Compilation
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #17 // Method java/lang/Object."<init>":()V
4: aload_0
5: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
8: astore_1
9: aload_1
10: aload_0
11: swap
12: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
15: aload_1
16: pop
17: return
public static void main(java.lang.String...);
Code:
0: ldc #28 // int 0
2: istore_1
3: iload_1
4: pop
5: ldc #28 // int 0
7: istore_2
8: iload_2
9: pop
10: ldc #28 // int 0
12: istore_3
13: iload_3
14: pop
15: aload_0
16: iconst_0
17: invokestatic #34 // Method org/codehaus/groovy/runtime/BytecodeInterface8.objectArrayGet:([Ljava/lang/Object;I)Ljava/lang/Object;
20: invokestatic #40 // Method org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.castToString:(Ljava/lang/Object;)Ljava/lang/String;
23: checkcast #42 // class java/lang/String
26: invokestatic #48 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
29: istore 4
31: iload 4
33: pop
34: iload 4
36: multianewarray #50, 1 // class "[I"
40: astore 5
42: aload 5
44: pop
45: iload 4
47: multianewarray #50, 1 // class "[I"
51: astore 6
53: aload 6
55: pop
56: iconst_0
57: istore 7
59: iload 7
61: istore_1
62: iload 7
64: pop
65: iload_1
66: iload 4
68: if_icmpge 75
71: iconst_1
72: goto 76
75: iconst_0
76: ifeq 110
79: iload_1
80: iconst_1
81: iadd
82: istore 8
84: aload 5
86: iload_1
87: iload 8
89: invokestatic #54 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
92: iload 8
94: pop
95: iload_1
96: dup
97: istore 9
99: iconst_1
100: iadd
101: dup
102: istore_1
103: pop
104: iload 9
106: pop
107: goto 65
110: iconst_0
111: istore 10
113: iload 10
115: istore_3
116: iload 10
118: pop
119: iload_3
120: sipush 1000
123: if_icmpge 130
126: iconst_1
127: goto 131
130: iconst_0
131: ifeq 219
134: iload 4
136: iconst_1
137: isub
138: istore 11
140: iload 11
142: istore_2
143: iload 11
145: pop
146: iload_2
147: iconst_0
148: if_icmplt 155
151: iconst_1
152: goto 156
155: iconst_0
156: ifeq 204
159: iload_2
160: istore 12
162: aload 6
164: dup
165: iload 12
167: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
170: aload 5
172: iload_2
173: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
176: iadd
177: dup
178: istore 13
180: iload 12
182: swap
183: invokestatic #54 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
186: iload 13
188: pop
189: iload_2
190: dup
191: istore 14
193: iconst_1
194: isub
195: dup
196: istore_2
197: pop
198: iload 14
200: pop
201: goto 146
204: iload_3
205: dup
206: istore 15
208: iconst_1
209: iadd
210: dup
211: istore_3
212: pop
213: iload 15
215: pop
216: goto 119
219: getstatic #64 // Field java/lang/System.out:Ljava/io/PrintStream;
222: aload 6
224: iconst_0
225: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
228: invokestatic #68 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
231: ldc #70 // String
233: invokestatic #76 // Method org/codehaus/groovy/runtime/StringGroovyMethods.plus:(Ljava/lang/Number;Ljava/lang/String;)Ljava/lang/String;
236: aload 6
238: iload 4
240: iconst_1
241: isub
242: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
245: invokestatic #68 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
248: invokestatic #79 // Method org/codehaus/groovy/runtime/StringGroovyMethods.plus:(Ljava/lang/CharSequence;Ljava/lang/Object;)Ljava/lang/String;
251: invokevirtual #85 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
254: aconst_null
255: pop
256: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #98 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #104 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #106 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #98 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #112 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #106 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #115 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #125, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #130, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #135, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}
Groovyc (Legacy)
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #19 // Method java/lang/Object."<init>":()V
4: invokestatic #23 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
7: astore_1
8: aload_0
9: invokevirtual #27 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
12: astore_2
13: aload_2
14: aload_0
15: swap
16: putfield #29 // Field metaClass:Lgroovy/lang/MetaClass;
19: return
public static void main(java.lang.String...);
Code:
0: invokestatic #23 // Method $getCallSiteArray:()[Lorg/codehaus/groovy/runtime/callsite/CallSite;
3: astore_1
4: ldc #34 // int 0
6: istore_2
7: ldc #34 // int 0
9: istore_3
10: ldc #34 // int 0
12: istore 4
14: ldc #34 // int 0
16: istore 5
18: invokestatic #40 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
21: ifeq 39
24: getstatic #42 // Field __$stMC:Z
27: ifne 39
30: invokestatic #45 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
33: ifne 39
36: goto 76
39: aload_1
40: ldc #34 // int 0
42: aaload
43: ldc #47 // class java/lang/Integer
45: aload_1
46: ldc #48 // int 1
48: aaload
49: aload_0
50: iconst_0
51: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
54: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
59: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
64: astore 6
66: aload 6
68: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
71: istore 5
73: goto 101
76: aload_1
77: ldc #65 // int 2
79: aaload
80: ldc #47 // class java/lang/Integer
82: aload_0
83: iconst_0
84: invokestatic #69 // Method org/codehaus/groovy/runtime/BytecodeInterface8.objectArrayGet:([Ljava/lang/Object;I)Ljava/lang/Object;
87: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
92: astore 7
94: aload 7
96: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
99: istore 5
101: iload 5
103: multianewarray #71, 1 // class "[I"
107: astore 8
109: iload 5
111: multianewarray #71, 1 // class "[I"
115: astore 9
117: invokestatic #40 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
120: ifeq 144
123: invokestatic #74 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigZ:()Z
126: ifeq 144
129: getstatic #42 // Field __$stMC:Z
132: ifne 144
135: invokestatic #45 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
138: ifne 144
141: goto 230
144: iconst_0
145: istore 10
147: iload 10
149: istore_2
150: iload_2
151: iload 5
153: if_icmpge 160
156: iconst_1
157: goto 161
160: iconst_0
161: ifeq 227
164: aload_1
165: ldc #75 // int 3
167: aaload
168: iload_2
169: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
172: iconst_1
173: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
176: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
181: astore 11
183: aload_1
184: ldc #76 // int 4
186: aaload
187: aload 8
189: iload_2
190: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
193: aload 11
195: invokeinterface #79, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
200: pop
201: iload_2
202: dup
203: istore 12
205: aload_1
206: ldc #80 // int 5
208: aaload
209: swap
210: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
213: invokeinterface #83, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
218: dup
219: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
222: istore_2
223: pop
224: goto 150
227: goto 273
230: iconst_0
231: istore 13
233: iload 13
235: istore_2
236: iload_2
237: iload 5
239: if_icmpge 246
242: iconst_1
243: goto 247
246: iconst_0
247: ifeq 273
250: iload_2
251: iconst_1
252: iadd
253: istore 14
255: aload 8
257: iload_2
258: iload 14
260: invokestatic #87 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
263: iload_2
264: dup
265: istore 15
267: iconst_1
268: iadd
269: istore_2
270: goto 236
273: invokestatic #40 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
276: ifeq 300
279: invokestatic #74 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigZ:()Z
282: ifeq 300
285: getstatic #42 // Field __$stMC:Z
288: ifne 300
291: invokestatic #45 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
294: ifne 300
297: goto 484
300: iconst_0
301: istore 16
303: iload 16
305: istore 4
307: iload 4
309: sipush 1000
312: if_icmpge 319
315: iconst_1
316: goto 320
319: iconst_0
320: ifeq 481
323: aload_1
324: ldc #88 // int 6
326: aaload
327: iload 5
329: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
332: iconst_1
333: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
336: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
341: astore 17
343: aload 17
345: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
348: istore_3
349: iload_3
350: iconst_0
351: if_icmplt 358
354: iconst_1
355: goto 359
358: iconst_0
359: ifeq 453
362: aload_1
363: ldc #89 // int 7
365: aaload
366: aload 9
368: dup
369: astore 18
371: iload_3
372: dup
373: istore 19
375: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
378: aload_1
379: ldc #90 // int 8
381: aaload
382: aload_1
383: ldc #91 // int 9
385: aaload
386: aload 18
388: iload 19
390: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
393: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
398: aload_1
399: ldc #92 // int 10
401: aaload
402: aload 8
404: iload_3
405: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
408: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
413: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
418: dup
419: astore 20
421: invokeinterface #79, 4 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
426: pop
427: iload_3
428: dup
429: istore 21
431: aload_1
432: ldc #93 // int 11
434: aaload
435: swap
436: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
439: invokeinterface #83, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
444: dup
445: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
448: istore_3
449: pop
450: goto 349
453: iload 4
455: dup
456: istore 22
458: aload_1
459: ldc #94 // int 12
461: aaload
462: swap
463: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
466: invokeinterface #83, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;)Ljava/lang/Object;
471: dup
472: invokestatic #64 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
475: istore 4
477: pop
478: goto 307
481: goto 578
484: iconst_0
485: istore 23
487: iload 23
489: istore 4
491: iload 4
493: sipush 1000
496: if_icmpge 503
499: iconst_1
500: goto 504
503: iconst_0
504: ifeq 578
507: iload 5
509: iconst_1
510: isub
511: istore 24
513: iload 24
515: istore_3
516: iload_3
517: iconst_0
518: if_icmplt 525
521: iconst_1
522: goto 526
525: iconst_0
526: ifeq 566
529: iload_3
530: istore 25
532: aload 9
534: dup
535: iload 25
537: invokestatic #98 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
540: aload 8
542: iload_3
543: invokestatic #98 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
546: iadd
547: dup
548: istore 26
550: iload 25
552: swap
553: invokestatic #87 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
556: iload_3
557: dup
558: istore 27
560: iconst_1
561: isub
562: istore_3
563: goto 516
566: iload 4
568: dup
569: istore 28
571: iconst_1
572: iadd
573: istore 4
575: goto 491
578: invokestatic #40 // Method org/codehaus/groovy/runtime/BytecodeInterface8.isOrigInt:()Z
581: ifeq 599
584: getstatic #42 // Field __$stMC:Z
587: ifne 599
590: invokestatic #45 // Method org/codehaus/groovy/runtime/BytecodeInterface8.disabledStandardMetaClass:()Z
593: ifne 599
596: goto 687
599: aload_1
600: ldc #99 // int 13
602: aaload
603: aload_1
604: ldc #100 // int 14
606: aaload
607: ldc #102 // class java/lang/System
609: invokeinterface #105, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
614: aload_1
615: ldc #106 // int 15
617: aaload
618: aload_1
619: ldc #107 // int 16
621: aaload
622: aload_1
623: ldc #108 // int 17
625: aaload
626: aload 9
628: iconst_0
629: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
632: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
637: ldc #110 // String
639: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
644: aload_1
645: ldc #111 // int 18
647: aaload
648: aload 9
650: aload_1
651: ldc #112 // int 19
653: aaload
654: iload 5
656: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
659: iconst_1
660: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
663: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
668: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
673: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
678: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
683: pop
684: goto 749
687: aload_1
688: ldc #113 // int 20
690: aaload
691: aload_1
692: ldc #114 // int 21
694: aaload
695: ldc #102 // class java/lang/System
697: invokeinterface #105, 2 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.callGetProperty:(Ljava/lang/Object;)Ljava/lang/Object;
702: aload_1
703: ldc #115 // int 22
705: aaload
706: aload_1
707: ldc #116 // int 23
709: aaload
710: aload 9
712: iconst_0
713: invokestatic #98 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
716: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
719: ldc #110 // String
721: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
726: aload 9
728: iload 5
730: iconst_1
731: isub
732: invokestatic #98 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
735: invokestatic #52 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
738: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
743: invokeinterface #58, 3 // InterfaceMethod org/codehaus/groovy/runtime/callsite/CallSite.call:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
748: pop
749: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #129 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #135 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #137 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #129 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #143 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #137 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #146 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #29 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #27 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #29 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #29 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #29 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #151 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #156, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #151 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #161, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #151 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #166, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}
Invoke Dynamic
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #17 // Method java/lang/Object."<init>":()V
4: aload_0
5: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
8: astore_1
9: aload_1
10: aload_0
11: swap
12: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
15: return
public static void main(java.lang.String...);
Code:
0: ldc #28 // int 0
2: istore_1
3: ldc #28 // int 0
5: istore_2
6: ldc #28 // int 0
8: istore_3
9: ldc #30 // class java/lang/Integer
11: aload_0
12: iconst_0
13: invokedynamic #43, 0 // InvokeDynamic #0:invoke:([Ljava/lang/String;I)Ljava/lang/Object;
18: invokedynamic #48, 0 // InvokeDynamic #1:invoke:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
23: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
26: istore 4
28: iload 4
30: multianewarray #56, 1 // class "[I"
34: astore 5
36: iload 4
38: multianewarray #56, 1 // class "[I"
42: astore 6
44: iconst_0
45: istore 7
47: iload 7
49: istore_1
50: iload_1
51: iload 4
53: if_icmpge 60
56: iconst_1
57: goto 61
60: iconst_0
61: ifeq 102
64: iload_1
65: iconst_1
66: invokedynamic #63, 0 // InvokeDynamic #2:invoke:(II)Ljava/lang/Object;
71: astore 8
73: aload 5
75: iload_1
76: aload 8
78: invokedynamic #68, 0 // InvokeDynamic #3:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
83: pop
84: iload_1
85: dup
86: istore 9
88: invokedynamic #73, 0 // InvokeDynamic #4:invoke:(I)Ljava/lang/Object;
93: dup
94: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
97: istore_1
98: pop
99: goto 50
102: iconst_0
103: istore 10
105: iload 10
107: istore_3
108: iload_3
109: sipush 1000
112: if_icmpge 119
115: iconst_1
116: goto 120
119: iconst_0
120: ifeq 228
123: iload 4
125: iconst_1
126: invokedynamic #76, 0 // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
131: astore 11
133: aload 11
135: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
138: istore_2
139: iload_2
140: iconst_0
141: if_icmplt 148
144: iconst_1
145: goto 149
148: iconst_0
149: ifeq 210
152: aload 6
154: dup
155: astore 12
157: iload_2
158: dup
159: istore 13
161: aload 12
163: iload 13
165: invokedynamic #79, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
170: aload 5
172: iload_2
173: invokedynamic #79, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
178: invokedynamic #82, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
183: dup
184: astore 14
186: invokedynamic #68, 0 // InvokeDynamic #3:invoke:([IILjava/lang/Object;)Ljava/lang/Object;
191: pop
192: iload_2
193: dup
194: istore 15
196: invokedynamic #85, 0 // InvokeDynamic #6:invoke:(I)Ljava/lang/Object;
201: dup
202: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
205: istore_2
206: pop
207: goto 139
210: iload_3
211: dup
212: istore 16
214: invokedynamic #73, 0 // InvokeDynamic #4:invoke:(I)Ljava/lang/Object;
219: dup
220: invokestatic #54 // Method org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.intUnbox:(Ljava/lang/Object;)I
223: istore_3
224: pop
225: goto 108
228: ldc #87 // class java/lang/System
230: invokedynamic #93, 0 // InvokeDynamic #7:getProperty:(Ljava/lang/Class;)Ljava/lang/Object;
235: aload 6
237: iconst_0
238: invokedynamic #79, 0 // InvokeDynamic #0:invoke:([II)Ljava/lang/Object;
243: ldc #95 // String
245: invokedynamic #98, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
250: aload 6
252: iload 4
254: iconst_1
255: invokedynamic #76, 0 // InvokeDynamic #5:invoke:(II)Ljava/lang/Object;
260: invokedynamic #101, 0 // InvokeDynamic #0:invoke:([ILjava/lang/Object;)Ljava/lang/Object;
265: invokedynamic #82, 0 // InvokeDynamic #2:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
270: invokedynamic #104, 0 // InvokeDynamic #8:invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
275: pop
276: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #116 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #122 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #124 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #116 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #130 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #124 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #133 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #143, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #146, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #140 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #151, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}
Static Compilation
Compiled from "ary.groovy"
public class ary implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public ary();
Code:
0: aload_0
1: invokespecial #17 // Method java/lang/Object."<init>":()V
4: aload_0
5: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
8: astore_1
9: aload_1
10: aload_0
11: swap
12: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
15: return
public static void main(java.lang.String...);
Code:
0: ldc #28 // int 0
2: istore_1
3: ldc #28 // int 0
5: istore_2
6: ldc #28 // int 0
8: istore_3
9: aload_0
10: iconst_0
11: invokestatic #34 // Method org/codehaus/groovy/runtime/BytecodeInterface8.objectArrayGet:([Ljava/lang/Object;I)Ljava/lang/Object;
14: invokestatic #40 // Method org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.castToString:(Ljava/lang/Object;)Ljava/lang/String;
17: checkcast #42 // class java/lang/String
20: invokestatic #48 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
23: istore 4
25: iload 4
27: multianewarray #50, 1 // class "[I"
31: astore 5
33: iload 4
35: multianewarray #50, 1 // class "[I"
39: astore 6
41: iconst_0
42: istore 7
44: iload 7
46: istore_1
47: iload_1
48: iload 4
50: if_icmpge 57
53: iconst_1
54: goto 58
57: iconst_0
58: ifeq 84
61: iload_1
62: iconst_1
63: iadd
64: istore 8
66: aload 5
68: iload_1
69: iload 8
71: invokestatic #54 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
74: iload_1
75: dup
76: istore 9
78: iconst_1
79: iadd
80: istore_1
81: goto 47
84: iconst_0
85: istore 10
87: iload 10
89: istore_3
90: iload_3
91: sipush 1000
94: if_icmpge 101
97: iconst_1
98: goto 102
101: iconst_0
102: ifeq 174
105: iload 4
107: iconst_1
108: isub
109: istore 11
111: iload 11
113: istore_2
114: iload_2
115: iconst_0
116: if_icmplt 123
119: iconst_1
120: goto 124
123: iconst_0
124: ifeq 164
127: iload_2
128: istore 12
130: aload 6
132: dup
133: iload 12
135: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
138: aload 5
140: iload_2
141: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
144: iadd
145: dup
146: istore 13
148: iload 12
150: swap
151: invokestatic #54 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArraySet:([III)V
154: iload_2
155: dup
156: istore 14
158: iconst_1
159: isub
160: istore_2
161: goto 114
164: iload_3
165: dup
166: istore 15
168: iconst_1
169: iadd
170: istore_3
171: goto 90
174: getstatic #64 // Field java/lang/System.out:Ljava/io/PrintStream;
177: aload 6
179: iconst_0
180: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
183: invokestatic #68 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
186: ldc #70 // String
188: invokestatic #76 // Method org/codehaus/groovy/runtime/StringGroovyMethods.plus:(Ljava/lang/Number;Ljava/lang/String;)Ljava/lang/String;
191: aload 6
193: iload 4
195: iconst_1
196: isub
197: invokestatic #58 // Method org/codehaus/groovy/runtime/BytecodeInterface8.intArrayGet:([II)I
200: invokestatic #68 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
203: invokestatic #79 // Method org/codehaus/groovy/runtime/StringGroovyMethods.plus:(Ljava/lang/CharSequence;Ljava/lang/Object;)Ljava/lang/String;
206: invokevirtual #85 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
209: return
protected groovy.lang.MetaClass $getStaticMetaClass();
Code:
0: aload_0
1: invokevirtual #98 // Method java/lang/Object.getClass:()Ljava/lang/Class;
4: ldc #2 // class ary
6: if_acmpeq 14
9: aload_0
10: invokestatic #104 // Method org/codehaus/groovy/runtime/ScriptBytecodeAdapter.initMetaClass:(Ljava/lang/Object;)Lgroovy/lang/MetaClass;
13: areturn
14: getstatic #106 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
17: astore_1
18: aload_1
19: ifnonnull 34
22: aload_0
23: invokevirtual #98 // Method java/lang/Object.getClass:()Ljava/lang/Class;
26: invokestatic #112 // Method org/codehaus/groovy/reflection/ClassInfo.getClassInfo:(Ljava/lang/Class;)Lorg/codehaus/groovy/reflection/ClassInfo;
29: dup
30: astore_1
31: putstatic #106 // Field $staticClassInfo:Lorg/codehaus/groovy/reflection/ClassInfo;
34: aload_1
35: invokevirtual #115 // Method org/codehaus/groovy/reflection/ClassInfo.getMetaClass:()Lgroovy/lang/MetaClass;
38: areturn
public groovy.lang.MetaClass getMetaClass();
Code:
0: aload_0
1: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
4: dup
5: ifnull 9
8: areturn
9: pop
10: aload_0
11: dup
12: invokevirtual #21 // Method $getStaticMetaClass:()Lgroovy/lang/MetaClass;
15: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
18: aload_0
19: getfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
22: areturn
public void setMetaClass(groovy.lang.MetaClass);
Code:
0: aload_0
1: aload_1
2: putfield #23 // Field metaClass:Lgroovy/lang/MetaClass;
5: return
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #125, 4 // InterfaceMethod groovy/lang/MetaClass.invokeMethod:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
public java.lang.Object getProperty(java.lang.String);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: invokeinterface #130, 3 // InterfaceMethod groovy/lang/MetaClass.getProperty:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
11: areturn
public void setProperty(java.lang.String, java.lang.Object);
Code:
0: aload_0
1: invokevirtual #120 // Method getMetaClass:()Lgroovy/lang/MetaClass;
4: aload_0
5: aload_1
6: aload_2
7: invokeinterface #135, 4 // InterfaceMethod groovy/lang/MetaClass.setProperty:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
12: return
}