From ff4033cad406d4c5ea5fdcbfc088f313ac4a6d36 Mon Sep 17 00:00:00 2001 From: UnlegitDqrk Date: Mon, 2 Mar 2026 13:48:14 +0100 Subject: [PATCH] Implemented issue: #82 --- .../jse/CoerceJavaToLua$ArrayCoercion.class | Bin 0 -> 595 bytes .../jse/CoerceJavaToLua$BoolCoercion.class | Bin 0 -> 746 bytes .../jse/CoerceJavaToLua$BytesCoercion.class | Bin 0 -> 609 bytes .../jse/CoerceJavaToLua$CharCoercion.class | Bin 0 -> 663 bytes .../jse/CoerceJavaToLua$ClassCoercion.class | Bin 0 -> 657 bytes .../libs/jse/CoerceJavaToLua$Coercion.class | Bin 0 -> 309 bytes .../jse/CoerceJavaToLua$DoubleCoercion.class | Bin 0 -> 664 bytes .../CoerceJavaToLua$InstanceCoercion.class | Bin 0 -> 604 bytes .../jse/CoerceJavaToLua$IntCoercion.class | Bin 0 -> 658 bytes .../jse/CoerceJavaToLua$LuaCoercion.class | Bin 0 -> 543 bytes .../jse/CoerceJavaToLua$StringCoercion.class | Bin 0 -> 664 bytes .../luaj/vm2/libs/jse/CoerceJavaToLua.class | Bin 0 -> 2686 bytes .../jse/CoerceLuaToJava$ArrayCoercion.class | Bin 0 -> 2281 bytes .../jse/CoerceLuaToJava$BoolCoercion.class | Bin 0 -> 933 bytes .../libs/jse/CoerceLuaToJava$Coercion.class | Bin 0 -> 354 bytes .../jse/CoerceLuaToJava$NumericCoercion.class | Bin 0 -> 3357 bytes .../jse/CoerceLuaToJava$ObjectCoercion.class | Bin 0 -> 2442 bytes .../jse/CoerceLuaToJava$StringCoercion.class | Bin 0 -> 1914 bytes .../luaj/vm2/libs/jse/CoerceLuaToJava.class | Bin 0 -> 3003 bytes .../vm2/libs/jse/JavaArray$LenFunction.class | Bin 0 -> 680 bytes .../org/luaj/vm2/libs/jse/JavaArray.class | Bin 0 -> 2247 bytes .../org/luaj/vm2/libs/jse/JavaClass.class | Bin 0 -> 5508 bytes .../java/org/luaj/vm2/libs/jse/JavaClass.java | 31 +++++--- .../libs/jse/JavaConstructor$Overload.class | Bin 0 -> 1005 bytes .../luaj/vm2/libs/jse/JavaConstructor.class | Bin 0 -> 2737 bytes .../org/luaj/vm2/libs/jse/JavaInstance.class | Bin 0 -> 1788 bytes .../org/luaj/vm2/libs/jse/JavaMember.class | Bin 0 -> 2010 bytes .../vm2/libs/jse/JavaMethod$Overload.class | Bin 0 -> 2377 bytes .../org/luaj/vm2/libs/jse/JavaMethod.class | Bin 0 -> 3783 bytes .../org/luaj/vm2/libs/jse/LuajavaLib$1.class | Bin 0 -> 929 bytes .../LuajavaLib$ProxyInvocationHandler.class | Bin 0 -> 1892 bytes .../jse/LuajavaLib$VisibilityPolicy.class | Bin 0 -> 598 bytes .../org/luaj/vm2/libs/jse/LuajavaLib.class | Bin 0 -> 5820 bytes .../org/luaj/vm2/libs/jse/LuajavaLib.java | 74 +++++++++++++++++- .../vm2/libs/jse/LuajavaClassMembersTest.java | 49 ++++++++++++ 35 files changed, 141 insertions(+), 13 deletions(-) create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$ArrayCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$BoolCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$BytesCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$CharCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$ClassCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$Coercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$DoubleCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$InstanceCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$IntCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$LuaCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$StringCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$ArrayCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$BoolCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$Coercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$NumericCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$ObjectCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$StringCoercion.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaArray$LenFunction.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaArray.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaConstructor$Overload.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaConstructor.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaInstance.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaMember.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaMethod$Overload.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/JavaMethod.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib$1.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib$ProxyInvocationHandler.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib$VisibilityPolicy.class create mode 100644 jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib.class diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$ArrayCoercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$ArrayCoercion.class new file mode 100644 index 0000000000000000000000000000000000000000..84e6ad9270667b03b49613e6c78e76f64e1363bf GIT binary patch literal 595 zcma)3T}uK{5Iy6^u5N3ZY4%A31(x7OJsLqsQL)%VBJ_B*i|n%Q!hQ%5^qcBQDCh_D zqoUabBgKcfFz3$PIcH|>e0{%v0=UGsh7{5&GCHzQ2qjyLh2aQyXx#N}IS2{LndMsH zIU!v??5W5Rc0GS+IFYc8@#w^GtbSnFfi!NJdg1%xNrMV47F;4!>*l;&PIy_JUBwI^keO>i5g$s097Sb*0~SL=eb; zP?#B>MW-|27&>o`u*_>r@!{>US7L96kr=Z_6VMx92rF#kXW*G_8LMpL)IFq`3gkba lJ~SrCzq0c;{e=@M97~~!wFGO}U@UV)M-7{NmKnE{+z*tpXMX}9)=`Y|) zITWdfs^|Wus_J+Nq5&ZxOZ#?aXWq;k&+orKegbHrUP1<0ft-yzEW&tCo=7K<;i0qd z^;9<|Sg-xikKYiowfccTfiQ6$w4rsNWLSbg$;JcN1lzmx9mpV2ChJoXqZktyw=sb- zVM_N8ogk4t=j3SJaT7TR&2>I}Y!PPNo9}}vjg)87##Bm@-+b$~TLROB^`ZE{_adhk zDW|DbzpHjwP)Bo-YRY1Kz77Ru39I+ZyUHQtn))+K8guUX3Uu*d3}T7;FF zdp(@X2{!7t^ccMj!bm%o-7mZH*w6?(AxsbT#BC3>6H0BJu%1mnEjW2Y+-h2tP}oyZ zyrrX9V2Q9a#C6wP_>XOeq3SmS8AU2$^Z!9H=aqh}p~BljnBmpQ@W&g&)+4s&8Hq8! zd;$8#7s4E$=`--2&&MVt4SmN}ma($(3u5=xcND*(c#e@%Sm$_n#xEI@n=U4>%|&*w nz&9J2KPU@`4S_{wcxob_;km&oUNDw9r-CY8a#J&mHLLIsjSR0r literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$BytesCoercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$BytesCoercion.class new file mode 100644 index 0000000000000000000000000000000000000000..89a009a41c073538e29c743b800f4410c8750095 GIT binary patch literal 609 zcma)3%TB^j5Is|%MFc?<9~B=9O+XTAbct~R(WoJ?fUsfJ;+3?PHtB=JztWY)g>mgi z8K+H11UKX+bLKr~?tK4zd;++}VFnTs3X)l*AQK9fKGii_cg9-Ru*4`J$d{&L23Lec zr8-cMCP>3(1{tg>$Yznl8lmKRW6chAOPfy4wRWfvbUPFTWg21kkx;G-o7MJWS}*WS zXWURwAY9A^ZPV~I%NJV972ZhPGp)YMjgOnpf$(Fe={gFEg!*!Yvl>FO+6Qi9(fcGBh)JG#gAzGXCE)wAY^)O$Q*CXsK@34;d<1FknRXSxOM$N!5-mc zDawTGo#P0vW$V5#d_rz+d2Tw}31`UjAqnezRf!)TldTQ5_8EyWb@~Q+WrZoSjKYA) xvV<*`QR)$+#F(yqL3zi@3+sQgpOC;d`y}jOH%1j@#v*(2P0fvmkthHF literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$CharCoercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$CharCoercion.class new file mode 100644 index 0000000000000000000000000000000000000000..864f2ed1939543683a654905dc63d8ea20dd4597 GIT binary patch literal 663 zcma)4O;6iE5Pg$CHn^sIgpYpE0xd`hAdI*M^+wJsBkP9kX zVI1aP1m$|;K%pwAJr?=LI@LjLQU?l-i&t<3BLTAqIx5V7||aqGoGKAG%!Cn#ePER zCEMU27bda7j9~qRJgY;FV8~B?agecg7@M8qq+`;3-HDi~1cQGGR_pD@jXbQa`EU1w zg){}uUQ)2dZ=uzgde-l{6%tf;OqPF7vRq+au>7Ky1#T;jP3lKF%S^`b@7byOXARgu zjkhkC<`XFK+*_;*%I3cn}fVjXEl)=p9<3EI+AQ6e;^yciSl9YVS#Zw0q)+MZ}f zgRby9R@dc7wwDwm)W^FR4Q{dx)^cOHk!TY1YZ#W&vevWwlSNccS(H literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$Coercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$Coercion.class new file mode 100644 index 0000000000000000000000000000000000000000..d2f67c2b9dbcfb438a7343c13c7d913ba334e782 GIT binary patch literal 309 zcmZ`#!D_-l5PhR<5~GzK`Uw>jAq!q}3>KBp9+ciUVF(G^EM${>To3(#ew1_?@Sxyj z9`k1Ay_xwvfByj3V(w!^h-_0R)9Fg}UmIo0%&E$;N-Q@yA9SxzHtqE5ke9ah@j!U4 zgjYt_h5E=U&Rc?)4+DhtGQF+FtMtl5^ggxeI3|Qg+lkLxX_)YGV;cPn5rTJi?asQ^ z$CR+RlDfAqVYaVpZW5!NV<#e)13Z8*mInyRDUT3Ba$n*I0VV^6mo> zZNmY)kWJ>z?#_EVGdn-OpI-pZu&p40q`;VpaijY+585Oh05(-|Yr8$9NYrXc7 zrUynXA`nC`9Y;QF{Pjp#K(xu_3!t@1zps38@Ca_0q{V(=giEVukZIy05{k#A%m=noQ6CULe&vdp}WEx>kpN{Qwgq0utZs@+6sop8BY zspreUl8N5XH)3(TP@TtZ-&0W`bpFR(a0t1c|11d=!}jDLo|rNi3e)9?V$JIj+N(M> zmg;ajBjLufODH}1F}HbZCmQus&z)psLSZ1o=*|x#72AZ9C8^(!OHm10-}7Y9b43`+ zke8C4pLG{w;T#&TkWl7*X87OFJ_i*^LPKecQ961Hw?P zel1WKNb1CQrVJDaC@Myv5{6yhv#t#{mMNpHU<~5|6DlTABvk#t(%jf^wBFsGrpLyK z7fDM71kp=KXSam;TDz|Qk=GO`6LtqqUE2&bCzM*tmqAyyxrHmArPo-naBkZ8W11D5?`Waq4blz2Yx4=k@ zxy>ig13QFiw#hNjVLO9awn=I|`7?~8TW=7j+m9H2#^^l<`jq5L0q3lJ!D(~sXE4wD U2`*xpvB+MD{S}t1Fs|kcpK79b2sfC@P^IEWK~)QWDZE7$m(ie;Qxo}cBkwK~~R0(G*p}=!v;m1l0wTh#7WQFQ4rG(mT7^-L($T(IpVdIx{rpy)L6cyeC$9XLVAKnK4 zHu-nNp4gYVZ=hFx5VqK6Vc>~v9Syd5s*$DkK4HDAr9Pv8ZN>~Vv9t6xcG))>sldh_ L4!OIHeY5-nIO~9? literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$StringCoercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua$StringCoercion.class new file mode 100644 index 0000000000000000000000000000000000000000..975fdd3f86036a260a616fec75a62e7a2e9954b2 GIT binary patch literal 664 zcma)4%TB^T6g`($u~y!`K{3$;#86}0)wm%VH3SwA_60}MrnE^Pe3x$2xbOq~DB~@J z2;zcFa?i|}d+uxI>-*yqzzvRML=cq_QxHdjkTLbKu3EZ1RNH-1417Z3%CHUpnh>p2 zd!c($!5U;j(sw$(YuH0Vp;B%BDyOU_L&1iGl!7!ege}J%s#c(z>UeaaHUoVomd3gj zi1riVtg;-X+WcRqNyrf{7cMQM@2RFI)P^J6fq39vx(;VLo~D|xhGR=85bCQbXBtAR z;XDdLx@p*=6^#1A?dpAtnZ#g{jZm8}e>y&Gx%^((twxYLPQXRp8expWpNi|@Gyxh0Ws#HsQ>@~ literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceJavaToLua.class new file mode 100644 index 0000000000000000000000000000000000000000..29f297633a132d6bccac364eac7a9fc726a6d0cc GIT binary patch literal 2686 zcma)8%Xbr19R6<8cG7f8AAnFaSde0ywgd`7Z7Yw4mIm_BwiYQqn5JVoWthQaf)?M3 z3(xWWMsei=m)L5d#G|4M&T-?~wR`^qJ$`rEFqs}aC!2h~`}pqt&G&oU{QmFFp8yQw ztq`gZP*AO+2DJiBbJ_(hYHC(Cnx3B1Gmb#*pkW!#L4iO==VTp%s8bM9Q4dvMqn*n} z&4M-;y>PBKnkZz$ebS|$)W44~l=*Q{$giR*|>SF2Pu~IkeyyW;Cgt zAE?J>v?|!5;$GY*(BNKKTBYlBNML72nJX(w43vAfI;CK%z^;m%+Tl8B*j5N_*rs5+ ziU+WR?ydP`0maB4$>p?pSMe#Sz)lqpqJzF_a=vtsz;3_5|EI^Dt6e!GD!Sxh^^9BT zD0xYbid}NP$*}T{W@Yr!q7-bmiaqG1N9PMvr|&N6RHRou!q}(cA?#;fW!$INo6nhItGs!k6nm=oAvnUL`{r5l1F)i_tN zmTu$mv@|7~6;fgPvP?a$jetOP%%0(U(3mhRJyke2t>-2*CK_AWxT9sxviw%Z!NH8V z`p$&L?E>5Rh#~iFa1Zo)`z{$OHm{VPcapk1kR`3gElbb2d7yI`EIGlI@^U1ttiZTf zUNQ`zzX&+tPis2uOH_`1smBv2<_7w(j6vMQG5iRJJ6li_{0G|=v?&Oy%x=2|^$ z@(qk3jRbrC2x5G(!kFjk6j#HH*2UT&=UVV0qZ%W=L>wW$OpFs>Ats2g64S)jh-1Xp Ri3afvqDg#{XcI4C%YPF($B+O3 literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$ArrayCoercion.class b/jse/src/main/java/org/luaj/vm2/libs/jse/CoerceLuaToJava$ArrayCoercion.class new file mode 100644 index 0000000000000000000000000000000000000000..3fb0283549adb55ec819641d586c04174923ee5d GIT binary patch literal 2281 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 Kq@$!Cqy8UYYUV5e literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaArray$LenFunction.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaArray$LenFunction.class new file mode 100644 index 0000000000000000000000000000000000000000..ee54d41511db0084dc191eaf129661aa4494b4b0 GIT binary patch literal 680 zcmah{T~8D-6g_u$q3kd&iXb0~e28RM3`2ZfV?v0;H52wh;gxiUGR~&kN!rdP{wqjG zBt96P`BBC@Ya$=}V4K|2-k#ojdeWQUKYs!Eh^+t>R0V1wCNN1@%WWFzLiVHK;9aD% zo{PFh?b-C8Fp1A{LzsM@naqD6RGY11fhoe`y-RT+kDRin(#tvof)LXP3BlkbGtNts zD8g*qmqQt8Y0{|M>#M}K12ixr@HoU1%n}xE309qHW<-0|%I}1Fs(h?W>c0`@o8yIA zod9!~7kCz80gFs}DDPP6f<=g7iQO~8i)N=4KV)@`SE;gXfn~z>z0;8|eW#+&{ECsR zO;&VkQEfjz`0v4pT=jI#S$I;R|A`i^?+Vu}AmIVwE)SAg)GcPoslvKuQq(1hcKPif;o>{xb2CS;G)-!Wv=A7?*=Q4l&{revPrtzbSCNwMX zaI~P6p~tebQKO)3M7MII(Re{y$_qQAIT}Ojgl_82BtusyzM*YtQA0Dc(S_88NIT=< zWgoooDNs4uz!}cfDKhj_KDv41P_HYdPVN`jjCU&cy33k@ck97*|Pk z2ZtY>3_LHKnkyrrV|SJ{qaen^4dfDLfa5gYB9G$JiP_}bNruZxRCMEvf*y`uoF&JP z!gEiN9`U508TkgxtV)x89Q}BQLCvk{X5P`vH2E7i&ZCMT&MUaUaS@jY*dfujST~62 zXoWprRyc8CW}UAZn2kx+u5b(>#Gq_RQWn-3`a-ee)Wl3jWQ9#ccVmzvf+2<$J+GS% zLvtv+D&@l*QH+q>vHq2li6BNf-oyKJjsP(XoRAx2@X(D)zNi?(H3io>KEy{1m+P3V zX3LZ%?6ihbtt)W-+HA#&K6F@E%rTkqDsrVF;Z-U#vz|T~#k}EKBa%a)-q# zlj{?XM_46}NM)sh=NiJS3otoW4o!n14X=9f8AGqzA%eP@5zm5F!3kRH!IV`nGkIzL z3yw8>NeL-z+p>?O#G+&CX0~A$kSUOojHDT^{!h%|WiP0BTMf7RB$BMGGOEL&T2>n( zsB9?MIH9As4Nrv*LpJ1`TYl79yJ2x`;t8#(XHlCzMqE`ZWoo33>}oa1Ome%&C2AZq z1vBmFmZ`#qAq{SEJe72`+S*e$M?6zjhWzx$byFk?xsj+TBruWeS=-ifqP zc^cG3t3VYyqsw;QQ8hR$>w*#}A@a_=kg5nJkC~>h-J}(?Y^wo9ZN*Cw0)0KQRnx3T zJ}WeO=%bek49{pbOef^Ij={(Q*x){tBHCAeB?-f}l%tvc$LYod+NlFDS@o5>JG3Wv z7b5#ORYcbd(()VLF5z4Wm-iw?gkNBUhIc)g8+|)C-&fiF1>JI1-YMZ~2_NjDbsyt< z62#;lscdqMUxAP2HzB)B7jB~uQ`FV(V3gk7Y0O}b<}v#Jnof1V)Aa^XM%}3UHLaP< z%?i+;$!Y2Kav9UTvgOJC9SrnWF}djahvd45n?=l&aIb{>yXYlR@=x%=$WRF@KfxFH zw1m%BcHtw*0W?WgE#5d3%oCmjJy;9WrSB8c2h_A4(kh81`boT$oo_J4{IAi{)I!1f z2Du8_Sr;pCF_0-?{UuJlg8t|Lk6%Ke@a)5U1)J7R5rxAz1>8%cq-YEQT*C!ir`UY! XLi-Ni)94}fHlEW=b!T4ufV2Mq_&_kh literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.class new file mode 100644 index 0000000000000000000000000000000000000000..ea4ff345e3326ca77203628c7390057227452fa5 GIT binary patch literal 5508 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 literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.java b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.java index 6b669867..ecb08822 100644 --- a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.java +++ b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaClass.java @@ -55,7 +55,11 @@ class JavaClass extends JavaInstance implements CoerceJavaToLua.Coercion { Map fields; Map methods; Map innerclasses; - + + static void flushClassCache() { + classes.clear(); + } + static JavaClass forClass(Class c) { JavaClass j = (JavaClass) classes.get(c); if ( j == null ) @@ -75,10 +79,11 @@ class JavaClass extends JavaInstance implements CoerceJavaToLua.Coercion { Field getField(LuaValue key) { if ( fields == null ) { Map m = new HashMap(); - Field[] f = ((Class)m_instance).getFields(); + Class clazz = (Class) m_instance; + Field[] f = clazz.getFields(); for ( int i=0; ifgc5Ph52abn!>1ZbfUpoM&tSX81y3W`LnR85tpQd7dAAaER$x^=u|ZRZ#8 zD>(Mj0~bJii9@eQ9QZ*T3gfC3N}*COGdnx`X6Eg_{c-s106-Nb6*0sWNE&1$7_wY+ zbvHD(^?q+&cb&Gcw@mR!beBTU3LNe+Bpy1R6I2-DxqK^yBvJ}g4Huv>l>UWp`?kJf z_DzF(ejq|C;9_R2Zwr^39R|(%yX`aNHtXlAP)=bOBML?}jA5K%_Wvk@+rqNzp}E1M z5g5jr#@c%I`QwJMR$Vu0i}fl4tEosMqu`>3OSpVyu~Q@%WZ&Y#W|+(k4ow$kimqSI z*OHiGnDThmiUx7ouASWt+pc3}dv>tJJ1VYXTER69*O6t&46vZFTc#UQ1KAdW3x;B@ zzD+cA*Yvu2GZ2o~E$0V&pMc5{r<)pXVTNAJ@%ns+3YE^9bg;+?fvDqoA0*#mkPP0T zE+civvm0TrZHo<)I5P}21Jl}BHFu9=waG(zm?bAlrcYgLDdNbGY}kIV%>95wQu91p z7_RC2Hi;y8A|GT)eKFE8!)T;GTE%EBW0ve~iV74*dA0BbtWf*}<^9p=J7k9uC%Xv= zPm#hiLeO0udd{eYoLd_l@cg^y4U_E3s^Mw%~v#>9f0k*D{N$;g%C-PP$g zNbDo^T4MXZf6jeJYJBo5t~{Be<2T+>#TcUA3m78%f+Capv@rpTxO8Y{8+p9MJ#=v& xTX;aZ3VK+Chh@A%j!+|z4x=xZW~}rJa*Al=j|vx1Jo0JGkynXIk~DA^$v>$u^wj_W literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaConstructor.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaConstructor.class new file mode 100644 index 0000000000000000000000000000000000000000..7658b3e202587f54afc1d69d2d311a920142a0fb GIT binary patch literal 2737 zcma)8X;%|h7=CU*2I2@9#jRD*f+j>rwQg;+t)@_d0c@ct)hVrST%Bv?fGt{=sT`}UaYS?fv&<5B{CJ?v@+vHIlCL} z=+F??u^YO;o`zF_mIdhxoJv-;EW=*NOwKLIqMuDYy%i_IP90t77HGR-+NS@yz{#kt zE9WgLXCer*sTqYKp<^HR(_y(nhnJ&Dp~I*BHG!bvfWXjmg{E(ERl1gAl;Y^YAqD%e zKstG+@Lbx29mflJQNvLk$8cQWXb`#}L``T4>}4o#8m_S-ed$iGl_j&WKbg7{;gz!t z&&w*iCv=>|OUxdX#+{NmZ%UW)Ey+|qj((ida9SZw3iR#_cU-Q_NtVC?lB$ENI?1PI zR6z~sNaKva?nspg9FK@M;X;Hl4C%<=<*FtF>0fgf2r!*&4Bre1^B~(mGfb%Bc}~YG zI8Q6Kyq9Oy8g@|%oNfU8tb)6UOBycgconbh*b+HMxSq)dHP#52dOWs~}iiU4G_B5GFfB1e;meo=NtG{Qvv0>MB+&Hp$Q^z%2 z7f4WNo2J0QWVE)Y7hUI`F=t5z{wm&5i60g?6z!3^NNPsI+XDOQNNb4V$YV^y4IKrH z3v|~-rhM157X-9b#dUK2|69JQkxg(mP3pLbcL;jLSeEQ;M&p+0F9tns*gmVGVSa>~ zQG(%C98;Lq@Sctt+-efLAQ1w)q>ACT?A5Gp5BOI0X4!!O;b8QQ8r~wuUmUk_N5%7Q z&|7Tj5Al(Pk98QBBZ9g@&au?wVqVFo%UiRHOp0wjkR_U77lz5G&DD@zZ7t9_@3@h< zComdK;8r+&R|2CY=ULF8``P;8&$Waf`%2&zy^}xkp_n~935L>dkVB)DO%y(5}$G^Z0!+K zQQbe*c=Zjb!H{?*;nzIFd;_=>ahDSFLNYxqXs*t11h z4poZi&X2+F}Q)zCzt>>@a{vpY@?|J zZwU1~juGxCu1A6Zj_`k!r+I!Yjq&sbgIowWA4cq79`Fk>roqx+LukkrG#Y3}8Fxce zrvgqu=O%8?uH*d;eDE_wol!LsXNmk1I*q}F$7d_Gd*Jhpp~XG^D)^kM1SNX-`-1yl K;%j`1!~X%0DeY+h literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JavaInstance.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JavaInstance.class new file mode 100644 index 0000000000000000000000000000000000000000..431164af6d3d6dab2c509ca35bc8f20a54e65230 GIT binary patch literal 1788 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⪙CzEQ^pY-FstB4b?_*N zG241FmPl8@@Vrjta=VTl_=A8>qX8#xO<2;UeoeNuH;tXxrD3xmvd`EG6-ymX_jXY;M%Jrhke9ld526>dY(02kO8g}3if^-SK=yC z#*==0J()exI;!CsflF3^3`?`$-$w)Zh=j!hE3q8j$ZVsD%$hT zj0~ACa43#`ndW7%M#&#{()-n%`gIIoP@rx;R34fT=+3T!rd+&=`(<$&$M7c&x2TE@ zvl7*yv5?u`DxIioZ`Co1wxJS?`r^;OCoZ;;5gY7z#+7L#r_ZDoE<+H7O zWS(v~pQEysPS>c?rQht-3CCTY0SDt%Uf%O?v9jw+gzGDv>YW@vT~40dtnasMIapK& zz=+yP4zgk2FlUG<`kgLCCGH!4(`i@Uc%*7i(GD_Kan+bs9bM7TB|;1AtLWU)(&{Eh zRx>#dN;uS4_jKxadivb~_ErQ~o|+Yqmc<(0C~Jvu9BB9}d#TDa5=b2|3(@^4J?s=Y zVtOpKuk|b2zgMx6^Kwvn{(w|_&#hg5*l~Q%ca6D_MqUd4q%@dGByA=*Iy0ia7Vo9; zK0eU!FV$fG7HA1b9$aR^*_jJ_DeSo(!}J|@LEz0eWh2Ef)KSCE7o^wH?>IBXxz5GM^)6T)FnQ*A{SjG;;`jQl2Y%rZRrL#9(CPHEnoCBe9ZBEUV7C~Yxq=P z+pnu~#D^&&!((eFXH){4)kU0d>(vE|&opnfPvaQ~Jj-8WTutz~`wNJ+ub?IH9TNTR z-(!;!oI_%)?JU-f^?!wi8XRvwL)8SH<98#H{Js+Fa1|PGHG^G)=P5}+{D_?zwNiKi zFGgXuqlRxl-8nQVkDHVu5jd(17CLCayLqJUQ@w^7JKEY8v4x+^S+umZe~DJU?|BQU z_T(b2_z=l~&uP(st<3l82-r4gw7d!Ga?pS-=6^HSd#KTk?Kl#E+=!Z=DNGQi#*-O` zHJa1YOL#d#u#HazxVG`yC0t*LwlC0qCDLsnR#ih?p}pY?bS>gYrNv-i@t4SAN0eVW zu(-U6{w;z2tC9XL7F(73qELU&68>1lW|Z2e@LFWEn-&UHeVZ!QQ2Uxij8ri?K^5Ks zBcqoHYz-y*+X(8dUL{xb|# zOIB>)5wD&*a2F+tDO&>io#OYMTs8RDW}K@gT6lR;jJXtvpSh3>Hsf^-$27bNp9yj|Oo0?oEE^0;>u$@E7UX<8_} z+ASS7=;=(c44+FTQ0KR literal 0 HcmV?d00001 diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib$ProxyInvocationHandler.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuajavaLib$ProxyInvocationHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..b12e9b9f787e1c8c24244f43758e631b33112d6a GIT binary patch literal 1892 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