• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2method Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
3{
4	    0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup
5	    3| move-result-object v0
6	    4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
7	    7| move-result-object v1
8	    8| return-object v1
9}
10
11method Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
12{
13	    0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup
14	    3| move-result-object v0
15	    4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
16	    7| move-result-object v1
17	    8| return-object v1
18}
19
20method Main.getLongCompareToHandle():java.lang.invoke.MethodHandle
21{
22	    0| new-instance v0, java.lang.Long
23	    2| const-wide v1:v2, #+0 (0x0000000000000000 | 0.00000)
24	    7| invoke-direct {v0,v1,v2}, java.lang.Long.<init>(long):void
25	   10| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
26	   13| move-result-object v0
27	   14| sget-object v1, java.lang.Integer.TYPE
28	   16| invoke-static {v1,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
29	   19| move-result-object v2
30	   20| const-string v3, "compareTo"
31	   22| invoke-static {v0,v3,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
32	   25| move-result-object v0
33	   26| return-object v0
34}
35
36method Main.getStringConcatHandle():java.lang.invoke.MethodHandle
37{
38	    0| const-string v0, "concat"
39	    2| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
40	    5| move-result-object v1
41	    6| invoke-static {v1,v1}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
42	    9| move-result-object v2
43	   10| invoke-static {v1,v0,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
44	   13| move-result-object v0
45	   14| return-object v0
46}
47
48method Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle
49{
50	    0| sget-object v0, java.lang.Long.TYPE
51	    2| const-string v1, "valueOf"
52	    4| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class
53	    7| move-result-object v2
54	    8| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
55	   11| move-result-object v3
56	   12| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
57	   15| move-result-object v0
58	   16| return-object v0
59}
60
61method Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle
62{
63	    0| new-instance v0, java.lang.Object
64	    2| invoke-direct {v0}, java.lang.Object.<init>():void
65	    5| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class
66	    8| move-result-object v0
67	    9| const-string v1, "valueOf"
68	   11| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class
69	   14| move-result-object v2
70	   15| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType
71	   18| move-result-object v3
72	   19| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle
73	   22| move-result-object v0
74	   23| return-object v0
75}
76
77method Main.main(java.lang.String[]):void
78{
79	    0| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle
80	    3| move-result-object v0
81	    4| const-string v1, "[String1]"
82	    6| const-string v2, "+[String2]"
83	    8| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.String, java.lang.String):java.lang.String
84	   12| move-result-object v3
85	   13| sget-object v4, java.lang.System.out
86	   15| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
87	   18| invoke-static {}, Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle
88	   21| move-result-object v0
89	   22| const-string v1, "[String1]"
90	   24| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.Object):java.lang.String
91	   28| move-result-object v3
92	   29| sget-object v4, java.lang.System.out
93	   31| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
94	   34| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle
95	   37| move-result-object v0
96	   38| const-string v1, "[String1]"
97	   40| const-string v2, "+[String2]"
98	   42| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Object, java.lang.Object):java.lang.String
99	   46| move-result-object v3
100	   47| sget-object v4, java.lang.System.out
101	   49| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
102	   52| invoke-static {}, Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle
103	   55| move-result-object v0
104	   56| const-wide v1:v2, #+42 (0x000000000000002a | 2.07508e-322)
105	   61| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (long):java.lang.String
106	   65| move-result-object v3
107	   66| sget-object v4, java.lang.System.out
108	   68| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
109	   71| const v1, #+40 (0x00000028 | 5.60519e-44)
110	   74| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (int):java.lang.String
111	   78| move-result-object v3
112	   79| sget-object v4, java.lang.System.out
113	   81| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
114	   84| new-instance v1, java.lang.Long
115	   86| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322)
116	   91| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void
117	   94| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long):java.lang.String
118	   98| move-result-object v3
119	   99| sget-object v4, java.lang.System.out
120	  101| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
121	  104| new-instance v1, java.lang.Integer
122	  106| const v2, #+44 (0x0000002c | 6.16571e-44)
123	  109| invoke-direct {v1,v2}, java.lang.Integer.<init>(int):void
124	  112| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Integer):java.lang.String
125	  116| move-result-object v3
126	  117| sget-object v4, java.lang.System.out
127	  119| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void
128	  122| invoke-static {}, Main.getLongCompareToHandle():java.lang.invoke.MethodHandle
129	  125| move-result-object v0
130	  126| new-instance v1, java.lang.Long
131	  128| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322)
132	  133| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void
133	  136| invoke-polymorphic {v0,v1,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, java.lang.Long):int
134	  140| move-result v3
135	  141| sget-object v4, java.lang.System.out
136	  143| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void
137	  146| const-wide v2:v3, #+44 (0x000000000000002c | 2.17389e-322)
138	  151| invoke-polymorphic {v0,v1,v2,v3}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
139	  155| move-result v3
140	  156| sget-object v4, java.lang.System.out
141	  158| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void
142	  161| invoke-polymorphic/range {v7..v12}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
143	  165| invoke-polymorphic/range {v3..v43}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int
144	  169| return-void
145}
146