From fcee94f1676f57207aee7ba937167ac4f74c9764 Mon Sep 17 00:00:00 2001 From: Muffin Date: Sun, 8 Sep 2024 11:49:58 -0500 Subject: [PATCH] Don't eagerly cast boolean arguments to boolean Fixes https://github.com/TurboWarp/scratch-vm/issues/222 --- src/compiler/irgen.js | 4 +-- src/compiler/jsgen.js | 7 ++--- .../tw-boolean-arguments-are-not-cast.sb3 | Bin 0 -> 42477 bytes ...ean-arguments-are-not-cast.sb3.tw-snapshot | 24 ++++++++++++++++++ ...ean-arguments-are-not-cast.sb3.tw-snapshot | 24 ++++++++++++++++++ 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 create mode 100644 test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot create mode 100644 test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot diff --git a/src/compiler/irgen.js b/src/compiler/irgen.js index 39707ef5c6c..b1b8ded5e38 100644 --- a/src/compiler/irgen.js +++ b/src/compiler/irgen.js @@ -202,7 +202,7 @@ class ScriptTreeGenerator { }; } return { - kind: 'args.stringNumber', + kind: 'procedures.argument', index: index }; } @@ -223,7 +223,7 @@ class ScriptTreeGenerator { }; } return { - kind: 'args.boolean', + kind: 'procedures.argument', index: index }; } diff --git a/src/compiler/jsgen.js b/src/compiler/jsgen.js index d3e7784d81f..914e5cc72b1 100644 --- a/src/compiler/jsgen.js +++ b/src/compiler/jsgen.js @@ -433,11 +433,6 @@ class JSGenerator { case 'addons.call': return new TypedInput(`(${this.descendAddonCall(node)})`, TYPE_UNKNOWN); - case 'args.boolean': - return new TypedInput(`toBoolean(p${node.index})`, TYPE_BOOLEAN); - case 'args.stringNumber': - return new TypedInput(`p${node.index}`, TYPE_UNKNOWN); - case 'compat': // Compatibility layer inputs never use flags. return new TypedInput(`(${this.generateCompatibilityLayerCall(node, false)})`, TYPE_UNKNOWN); @@ -665,6 +660,8 @@ class JSGenerator { } return new TypedInput(`${procedureReference}(${joinedArgs})`, TYPE_UNKNOWN); } + case 'procedures.argument': + return new TypedInput(`p${node.index}`, TYPE_UNKNOWN); case 'sensing.answer': return new TypedInput(`runtime.ext_scratch3_sensing._answer`, TYPE_STRING); diff --git a/test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 b/test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..05db1b3f716248f0408a6813505b51f10e905f65 GIT binary patch literal 42477 zcmZ6yQ*bU!&@~!oC)v@CZQHhO+jjEAwr$(CZQHhOo%cKE{1@L}Q|o4G`l6@Sbg$~3 zmX`trg9ZWu`UBJyOs+AEE?W%)4g`dS2n6)^zg>GrJ4+KIXIe`qJKNzj8@o+bgwfuJ z$?86cwwN61NuNeiiv|>{!~)q(7mGawuQ&{)0#OCot)=fPE=ho)3n05~_+-BEQ;H}JzM6G&X1FW5i2O>C?GD{4n4;g+rhLr!URpV$!J0!*vO3?T z3|dJOe-u-BmgO0QX~bBtc|wQ3cx}(9Sjk#HFO76AI5Hsp6nP`a!*&(6Z1Gt~mLryD z)(PZTNc z0mAU;(1-3~-fxKD^-%ZB(}ADDjNumCXYJE5Qq2uo$7{Vwc&%?p;D{YaagRCm3Lzy} zVfFbd8OK(u!sxVRNr{B&wG$v3ZYG^;IpK@~Ke(WsFYqT;Ng$nbk)6u%uK^Jg^BHZY zfJ6#(`QLTdn(1`Rlc@N6m@E>L;;yPB#~s~x!qEoxdBd7ugBvu+ z6}46@dP?8^5@}k#8ml|0-e^-*D%GRRxxIOErpa|04cJEEK$+@<@21yNha=d8nVq-u zI}{Oy68^D8Ab?{+LDdvHKR3kGx<6Wh3{K8F3XvdYGN73 zl7pq}lu@V}j1v>g5a4$9)EX{V6_<0H-)MF*)*+yrOD(lJ)=p$mk&tDz;SD-I&S>w! z$zM57-R;@>YTw}@KOKTQb#Sh`QD3dOeBHfSJy>{4VX42(KX96{hb|vlp>35vluNLL zU0Z|$>J;O5C22y!J+)tJC4Z2pk99UOtBQDrZd0{pbjI#_4ern8iJTqm2!8A=PW0jv zc2UcXN5!jO|DY4Y;wCe(PbcHn_e#;P3HxK!b9%cxdHf!w!$f`p0$rl;Ij@i7UaRv# zLAQWND48_J-b-CBI#xaQpOA;A1XOUY()a(Vc8%0K^YwlY6n^j!VC z+m2UYR?$Ns_Fy(fNo65Wj0Mei*817;e&J=Aea~qTZy;Qe!Tv2@DndtbYZ=$5+OJ9# z8{Ge?6?2U@!q_IT_JR>=zMu*C;1r~FSaEdC6URG&>H-I~ou#2Pr&200vGe6ZFxgEG zGa}GZYb!Hf8$4{XB4|2mOg&OhLq4t50Cs)l9PQAGC``M{!_prhiUrppvk&CGb(qP@ zL273vtsI_b-IN(tK&UQ{?uhArVQbyHZUPS-{Z4zQe)!~Bi1pfy72k5A2+xa&?7q1` zZCSV75^S@D`T4lGAqgaBo8&qOWp)&l{K&a|KH$CN5WsUCq=hn?=`HSp$)b0}dfr}L z-O$}_Z}FfKR$1C5Whs@k065$`y#GVVi02gb-dtjrxcCJ@h1T=1HaBhHv?#VVu=!R& zEP}S}mqdFOfPbT=>hqYFO)rnh3@BEL4E~B)bg(8#+u#RuRRFUXwcH^RlNx!O>S+oe zR4vten8p6GQnGkim|IKh{(X6g!l_3Kj9D1R-GV;(1(N??K{IRy0XXr$U^($0i2s9; zF(U&D1G6zb3loE>v8kycBO@a{vkAS45sQg2JF@|;6Tr+yMhY$vA9>3&Vzm`=sD^o< zKtgT~sYxF#tv+dsrS^CGmCANm21dN_(+9o9-_+0f5Cptq zQnsEn0aLvGZ4jJv4@e$0gr41#NlZmWl|_bSU6PcT>ifz53z5DO7EFJz|Oil9rq z<~B{y-+e`qc1ju!K-F&V53gt?*lO~)%&m=`mGd>-yEC&PzZPnnK3*ThJ@N#|{eDAb z}Xg2-&gp*?y z?pY3>u;I9dip?wt4GmzMZGEPg6d9%FzisT+uxUXCO;gb@M79HI;=!y4)@}X&z-+S+ zg;~H$hrc0!>Pa;)LO=bzWejGic>dwLD#kGg#yk+|%PEiwd1eWrd7_JTR+siG=b`X0 zks7!QsxDjG1(4y;8kBZ&pCpy@EJXranF|#jXw|Cnr8PpT0r@CgSJ$PaihK zKJ02e&p}$1ckv^v3JvOB+4Bl^4{1YT1ba1b1t+9&`y|td-0Q0&yEk{LM@jo9w( z&q8FK*gKdkf6NE^ty&gSt`ifmQZKen1;i z!owJX8_-b(z7zjL|6SFffdW%Ghg(QwK(HoaD3m)HuXh~c2qjjQED1hibE1iY11)5h z2EVv-umZ{Bjb9W6J*WML>6}tQY(hEX<<39WLfGj4Y@ zG}YJ=x`M*HhZ5o1YF^1+K{dBwX+-Q!zeYkJl~@J5Sj|^_>y6LBhja$}kR`O#_^UnU z*>-%zdBJkH;zSK<=M7$3wI|80Pj2trQhhVrUf|!<&PX77rLPjp3kFgMbNL@v%BfMoKomV};}G{yy)aqh%QTW818mMOydkR)Jt9t*SjJ!Z{dPHV{nR(_<>ZL%E<0ZG zwNvo^J39P@-;SDy{8!hlLX2=^Va20_>teemMI@rk>1||PkTwB91CipxH)aKPWM%V? z5utY z=k3Yyv5ub;CTiYnYq^!4$CNiGqP{|w2E|J5w0=Poy^0ujuPaV1i9cToTSVE3%8V^7Ow`HklLb~N#7GqkGoV^69j1p%Wa ziAaL@w{1$}6O4}G-4CtEn{sB+!eqzIN$u%NV=b9pj3L?G;Xl4dyS^W0 z{qX*Fw7aisCy(~b%IM*DfrH}4uTq+spq23?F}lV4pXkv zAlBE!V;jc~Ty3pu=;7e@9;avh9AdT(Z0O~x+NXg#wyI&%VMq3s4mEqRHk)Z! z7sg4!;C|a~Hwt)5=QTZ3udS`!>1U`G2Ko-{=C&ovqDraDYUd%aS?&lKQ=xKV`{I>D zdpi$SYWin!7`f9g%ZdwaMiQ4@jr6rObA3d;^=@(*KuU*LCAdGnALdaT!WeGxA<;Y4 zcti9Km8w#E&n@0T&0aXgJ7{>5c2X*iM*G@>wpkxakW+G>ab{+1xMYzQN#NHkr|MN_ zcXOxML4SvE1t4ofiOu(QmwSsS7%fET*`~XrH}ldNdVOL2*1B!V6+_2s)$q4|_>X`w zEOX4+g1bBE7}UNJon$x?av!;S1Nskd!+E<5Eh?K?tsKMyu7P6K84V|A zTMItFmmK5ZK4M9^C8^k@N_~7iu4WRU6j{+31_CQfqy}RYp)xDtUzRw5Q$&7XOf)jD zl=`zJ=|5Arh?4VB#Wpac*%8N4i)&Se=whQMLv;XY;PCaJwB+Y@G!9{@*}GygB-v^E zx>)+!EEa}A^V7}!6RXghA-ej|p>ah+cZ@(L#xUYf>Vg3U3NY6wvTj5*V*)4@mH?z^ zdHvV1F%-r$bBp;L0c;Sb&J2Bw8F1bR;_43C{wqXNGzpIcTgof*?&F`EN-a5tr_}9> zL9ce5>HWT05F!1tNE7I$halQ;7;`N1QF9Qd*b>x~fj<`_oAL&MU{P6dWOVaIH5#HX zWyHWK4X@_h910Rvg1h)Y`J^@h~w3D~O4erVhRjWu=DT z-~t7>h5kM-M|2WO`1GBl)a5w?l&H#m+C)g`gpcW{2E-e@{4xcF*Cd>IB%{q!VZlJS zGG=jz49~*4+0m&XoZu-`NoXaoMEq~%hond70Q(;{8ukQymQ=q4axpcT^hU(_`aPWl zs(T&fBhREANi}g(2jQv+#QT)fPPd%f@@jJ~dTT>2A~_B)Z0${f-NKtOCTg*uL`CuM zL(dhQoL)WeDFXVP7iFHDbB+$-jqFZ%y((?QO+|Fj?Z&(l1`7EIoXL>7I&E-O&7rbI z=$QxusK}W5Vv^u-I}}JlO;B((0K^6aehZC*k|PVcmZnF;YC|a_jo@+*C#kJo*L}hy zi~Estbi-$B$mnyOwl^*+QH9rX6ct1o7(cT-dtM%MlAsM85WIO*08jo-ALdy@0;U=_ zNaE|8f9V)aX_o*Ufl7w$gFQmuGN-kQ{3DH&oDjFo8VJCY!f+K8cxS;u6=}W*wRTQ$ zs4?!}BXkh@*xK4_>FKgFF_C@P-2#FUZGB?!YNAsA$SD>OTZdR4nwC8_VkI|pfY1RL zx8=ldE$~lZ4C)8)fy$R?s;XV?jGv$Z~QY)E-gyfzIZ)7 z=7Pk<{2$lO(8G^l27A-;UhTxWT~SFcMMZ;b&VOtk+E1eT9@=(Cirv3X4?WU-CAhb9 zzQk1<3sx7b9bhsxp|aqts9L`=V5Ic!-TVyi5~U%WDh07NX(Rb_3iE+y#6T;GDxcg% z`bB2{a<8tcZ+xw{Y7|DD`(?}KYtK!AYg|HJ>3FW8w3IM~?PjG2uLSxuP?*;ttv4VjIN zO-&3<*_fGF*=Su20KoJhv)_smqN3#g8L0`VikR9s<0JfM4E*0hqyhpWR0RS80YU&W zHgGlo`|r#$5GZIjq$BJtiV_YtQ6}*LekH0Cgv!0%hW=1=qeXc_*>Sztu)zK!$TjJ_ zn52QX9g#h>!Hn<)4&@{KxMk^gJW2FT8b|Zl_QBt5PGNm}K(l*+`I?9sn&gpnvq!>? zzg37sZp;|L*8#n^&aV5BFPlTTObd4Tsa#uB3TU`Ryj;!my7pfnZh5_1J2VSbS!iO1 z2aRE~!j?q0^tT4{jY6mxRx33M(*nIN(PzA|2hfS<>X`z(O2(o4i$3H^4swNiRb~lU zDo`-$&7O{{GPv^juBh!U2yR+GDP#>YMIDYRBpW);q@{`ipKbN&%%W=|nff}lH7ouwSO7|@&tzmR}TB3xyeorIkDz{B!y+aglNwbiQ}{{)c z#{{`nhFs*VJ}xn?Wr1vu-6x-=c1GD#d#%&i0`R^5*m(cFoX|Yk7}($%w(Y~j7m-kU z_j_P6u}RLR%v5Hr$Wp9Va?i^uc81=o3{&T#^X>J}N+EfU!<0-V{w#uOSW^*uUumWo zhAeiWbZmaUAX|1^N^H6@-<@k%_R5=4>nR#bg|F(EP$cOcHVc0DBD90iYe}HvB-B#R zRQxDntu8JQTV7l-yCAvfxY%0SDRhzfu5U;<$iK>26Hn`4oH%r#b+F{%%{sIueoe!d zx`1~p@sTU#_Z<+o1!0S3#AWHK{S`kgG3~(=c(3ddeo%Fb^v!(CDjsFjCs5;Y4XQaT(CPxj!a~ zn&L=YUt5=Q>Um<5;-6VfzC1{^N@dyhx4{SZf=&)r4ovoAl=ctdYO<&R@@tHuR<{2! z+R;>J%jU}G7*F4zcMa}WuQ~d!+i{H6oFFYLl#{1i2R~1@r`3;pVn`&mZSBIk*DWpO zmf&Q4e(JTEv@(=|&I8U5K9ps>4XA zi=QN|A?!_iaVrcH(>;cG~p9V#A>`2~rVp*#V=X9(zvQWG{GXmMH& zxVdSUf-tz7S_#6r#lFB~t>V|+&gD0KJ^|xM5%;!jObKY#(y#| zTy@}Z0u^1ERh(0YIrz7FXwKKrJ5 zKHb1IKFJBjhmd58;H=3#wp#+vS7mMcB|7ZRqp|s}GUzvsS*@GKI|e=T^fPB`awcr zAyLMj2~)HzzfWkW;DWzkGP6JCw#AijuY#*ksmEw#41%Wb?c;v#BJSkoa4d6<2DL$k zxJM0MHX)SymOvEpdc<6?EbwEp(;MH3wph=TZUN7&xYcWc?k)3WCLV5@LF0xoLbuTz z4Ipub()J>TTMK@R=n7plD8fGk)1x-M!B!?4uVdp-3g!l(HGkt40C;MR@h!frIjbPX z&?1`U4C>Hve0D+~O?2qBIk3K%UsOG94jx#1>=ey;%_-nH2a?CA?%m{Xf(Pv_5lmTD zdwlMbuefG4BWayHI&9fyW#6KdHE0B`pIsAjFthkx+wKu-%7Q~}?!5NW0%2(&a~ZNC zkj^V|Sa|4|W)*9o8bdUp>Nhr;-M@yqbtomk$jJZlAAjfltVzs9!kJi_S&^!KUP{o- z9Cug|0~!Yly=c{Q!gZM-q^~2hu6v6N`c*?sH2m<8@m8=&TVfFlcHzDG63@2#T;37m z;yq*Fqn2IR{L6&jmrci+y0N6@XsA@q^H&960;U7Qa1cUTYOuqN<3tp|GTs zy~cYPo_UpB!H|O6#_QNMN$}v)^^XrXYI(cWcIS z(0R>84{N>NO*F^M3;H`H$W;a~f^^U7&bs{;2temT-I$gZvIq#r1zx<`%-YnIf9BF{ z{k71$`E%x)D}!8%`6ZmwG;6QQ{!P%+La-mR&bnE#-ZR7vQqLj=zR1MUJ*pX<(ZcH5 z`n_5|_ny?UB!tD&;H61}oFMeIm$5hD=w`PVDzLUgs@v?^06v&=&KD<24;|9#deN$F zy!!Jk=r*pyYhos~^}6<`yy=@{1YvU&YONQXg24m4R-53#X) z5)kqjJ$0g0t+uhsDFcCRR!xlA$33MtD$JH3g?7(KJ65x`4^y6+7KX!CEAKuqpC)+= zWsbtu#=>oPW$|Dc?85$(ovC?o6rx)@VP;|*0Ru9t& z;Zi;l{dvhIk00Hd`MKHY0g$PxPh2jj5^t%+7NLE`*+uw4c!^U#x-3%XvRh;2aXAO| zcpEd>;Ga|`Di`S8R|0J%$*1zMhPRS2SrVKrnJ_3_WO^_efHUO7xa?ZKCo`bi;@2aP z$lJv&FG6WbV@bIdZ;33^Jxbd;dBdBCNi6jc-Oe27uZ%xw>T=2ovw8zNa>W{$kMt(Nyyiz z#`M|MIL);_YERaTx`mr$ zS<e7l&}+qqV`tnWD{J>l3` zaZ}Z5USLh0@vgSij%O`sf>waDqC0D2cF#PhJOUxwlS%NK!IR;HN{7;xDyI^P;S*qd z^34*O^L!9v>R(sH;^|>I4o$-7I8vt2=ucUvnC}r;6!C>w`1CVod^%E zseQhFl@#P1QaeqX%smy&Y5JYHSc2VirIR* z<+=MUfU=rAD8Y9X*Pqy}-xs9)vs7{STxSomE4ZHx2wWiHCKJjQunp~6|FQQ)i{$}p zJLXH~j(L6>**T=)WRWP|1`iro=+&KG9^_jyX5ov(P%hXueIP28Tvg&74bTqEanG$+ zYh+Zm+B2Em!9BC~RA_8ITCb()osvAovV{ZCEGlnJvk_Fj zFFs@_LTB=*%>8yXmr1_HD$-K4w!c{u84`!R>Mmj)MGS1-;D;m_@c@FEg=s@u-?Ljh z4Zpmr{h!T0413##dk3ChQ?fwckAE>Y2TN`vd@nLI-SZn9QlVgvz;2J}Yhf!dYuv-< z!asJ62}>@G&1RJcXBN!bcN<#17b+dkf5i3F6ESmuLkSM(2iv-hW9TRc42>ktR8!H< z8bU(O)(#>a1XgD}MCS{!2eBUugrZl)1gO-SAEsLcT@YsFsoFAWX9xzO-(bD1KfSq6FKUA)yth-LeErn-{;VPAgbEjQUQck-h9rx$gx0k01SebK zApPoCW^iwJb}Lj{Q{HOUXff1KxIP_4)V5R~qpryu*(lSpW^~QuqS>PCANQ`#^au5p z%s^$s;#Jsq%7@d|&4Q!+Rn@zNF%m6L%D@gTKm=Oib#B=%^Az}F=Itn7v8Yp)qT0)z zaLz4p4yddpf0(JBiv0Xc`!EOacT}KRwj*tT3=(Bqe`T{mcxmopM?8I)gEIS+H<_3i z=R3N!JWupqd0EeN4n#iphPb#%U4WL5^|#BLrD0qkA|4;M=>E$=wBO2~Y7qLaUvq7@ zQ*8Wno~{LHw$APv@MYideS#Qv$m0M5>I8x$Y`hb_K{epT>Ity{Jo0BPqfB_LC8S4s zkCLMfA7P8W2r6hOU9rou7d>JygLQ_F3H|in*k{48qhMhBzg#x+7;+XEQ>_iSF%a5% zKiSdW@~3RyPB;I6f?s*L6uDytfjl>f5}Mjfc4ZABVo?UdB_>xHF54GiO>HL5S|l%9 z^~RXgm|~^;-f(s{$qkP`A+f_h03AS7Haa-yL0N4fpuUVhb5Uz!CYAO;#POD3VC}15rJ?oUbe`=8Fws}blOla+qhrdNz370=&`hrA+?L1E z=Tgcp`>FXf@B4M+&HhfE3(nozo0AVuV|h=W{o)g;wSCw(cx3BEr*UK#q*J?&&T%XgpLb&M?&oI_pUtr3>drr)2Krrn z08E0B9qzwg5!B;z_@0rZvt|vOZ1D~76P_pRbKEj*AH-L?|K?B-f&wys*++?pF(53TG#9ug)D|}@KFDNsitY(ff_EY z+TAwyS&#TijHrrj8Znr{^mL*H2x))Gjhv-+5YbOtQgx$T4#cOyDr9zZNkPyqN+QsL zg#g@5*L2A8`Qo}{x~J~%eU@BD93|f$W{Oid&4}s0n$&a}L78qqNc^W^t$~)T6(Ona zS^TQ!z(9~BK3!kwN;qm#T0YdpSyR1BihW~BT1+@iZ{ zrM`V!t*x(aBPC0=&-(27tg^(;tttym*{6h)5(d)dp)`yznH;`MTl6~~NFcQbP_6Y( zo2*5@vBdxIGyWJ;sCfMKMJ_!zOGiQHy2P75)%YRu6iu>Wi&(fDQs*kmMbbG=Z}=#Q zUA*}%G@)E*@bNW=F>A5BNVlVBV@$e;!idSc0c*P%i*nHUUCA;367g{@4sP_XcR7PP z-ngB27DlbGw0T;+fFerbm^h08G`*Nba+@vE1bYS)e0wKUBol18)jyqvGlG@T|CB%lo)of{caiyuj%sfj|jq^&BXa5#f z*sa)Y)GAd(DUP#D1J1V!!UpX)&Jaz4Ro4kP@FVt3red7;q|W(fzQ68X$L@}of%BFM zR{GRLT1e+A29ts;hcR!{;I;zZi;Q|Aka7{N4Q+80t21XmA0Gwxt;JAIBWXuL^fM|b zl(3b04B}5q>M`1NEW8`NOBm$h@iG2k*rzA%t(*_=@U5O=vW?7jv&d>;Gtw=O1BtId zJl6{=v$K4-6xCS4lM9ik7}8oGozX9N+$QgiKYhA4PIrWoz>47*(Nn?OK)!5X-=!Tnx--rk^Qu3=QBPkG_Gx6nHsrC;!=4PCc$6+rQ8}1KZo}Sm{_Gp_C8vC zGnwQqbVokrcDT6r!hAlTurTs|!<#gQ^>@=PC>3j{-I8yrbd}2gY#1JHX0;_d#W4%Y znVT(tn)&%U6tWnZ(;HTkhpAdP%3p9&c&W&6k10KVf$!8NvRfO)3W_kfdab$;c@2lW zj`-(5N_{IWgto2uiB$yQB~UA*OGvTM)K6tsxBhLj37EyhpKZ3o=DdWyJi@N)EcEhz z5kB#HFM+CQ;5@@9nvuuwOUhDh2&8>4AL`n;XLN%Hh)_u}4{naK8SkcR+FsLbCHgQ> z75}gj>DfWyLVT9(_H;~iB~Y0_3K&Zk&DCVtm<xYny{gBi>ju#AhUUQ;aI0rViz{hs)0heN?>HS|4gFaIZ!Z9^{pC1K9UJjg$h+B|D=3SC`QQyylIeTND zxd1+?fv2E*$H{&q^m^{eMDcWA78R0Ivb+xlS}J^2+2CM$f9O^$k#PT+o?mu!$7pf0 zqIm9l4~UcQ(ea^4kJ(9qIjtnM->T*K^Kq8}PJBR3_Pq^EGdKlckGqd z<%*pBitlFS6%5WN4@RLZw!599(Xo8HLe6Q^kZjg?jb(&|K6J@uC*tB^J91S(f5N}mIc&MU#%3f6R z-_bpPr>;I$9Z8t2ywoFwWCNty;33MtUL!kA*y1!Ydvj28<~G>_Yg8!>vrm*IX2mr}x_q~@woOGzAq>toM9St_QC`A?bAZ6E$3qbwRoCYJFs_a zvTR?~Gm>6LjqZuY)_p)N8$-f$dcNeZ$=khMAJ%z7MFVLA*(MHB=DFe5*(8v>>(@EG z&n31Z`x0nHi{4o~0mKTG{;7Q&MFv8u+u7c%7vds+z`1GDHI@u@kbDz#4SPx-m>3g# zh^)x95)iAL!U<@QO{zYQ|`f@sLURRoK658%u zy3xPg?4cK{+TOECv>K2is+4`p#op-}28g;iXv|ch{-|H?;bCgfZrmOaO&OLIr4iu-`O2 zvJO?(p#~mzuN|FHnL)(xz|u9JNOhe9OF{5tdlOi)=n-zjgC9LMh@A8$YfF z*&UX~{e6^W`02OJYeHG*nVBQq_@kgldv^im$H=uIf5IWnEnRls@@lSA937u<2vV z?KAz9@}={Q7&M&wLXb3*d>!snbM-U96T{Q0Rmb0ky%LcHCc?*hx}=;b zP54m!Az_bU$D$@dfSW}@a(qo9d*ayib=Gvllnbl9o2_%ws1|*Sh=G>tSLdFmCXFMI zCO)mEK2y7*)UeA-V@zM}Qz#`oC1YYKTOe*5W#XnEntMKs@VV=Mvod#rC+A&bz?Xy) z|8(lS1YhiEqHtE~&&gg1_WVUlrk7+QduhqW>PcOwexj()QKe;`@*mOUV(rF)g^VAc zv`@sK9B2}4_&c-G)6`vZ-vhaSHm7z;*6&L+s_cXJNohn3T7z?KI4n@wK~E^FOV}8E zB@nEP0ivNMqAP`0kiRBg+0gY%E}sHBwuFbi1$YS_hEc7zJgwJ9C-$!9rDGlff$ikk z%Gf76CEt@}ZcUEx84iw=;|2m)>;EOa;O(FZFZk}V5Mku&%x@wKtJPb2`*CEN&FX8zEM2a7G)9g%0CtTIW zcn+kWhe|%JFkDS-1yFf#IS{319yd-6g)ik%HuuatW%~xv@N0#Gf{{t3S>f0E>27=y zn$zCS1$;{utB|kuDF9InBaZ2fmm+lX?(-9;1u?hqRNy$s`lsKip2mVeVUTB>S?yHw zkNL7MXV`x;&Y+weS>g6GX0!jBCI``8m`Gtlm$34E>0G zI=RjV>aTX|vX6jVx96V3MCiD6@^#|E@^Pl( zb+UtSo$eprZS6sx4hx1{aRDqgM-q8Ir$NV1Wd<&zn6ls>p!zi6s)fje652lNuWQ$e zP1Z=@Jr_(1MPjA}i<$o>cB0r*?&*8>!9}Y2!*6GIw?V6Lj*BcdF+S#&@g9Ha_6i5( zy8O=iNa77UXsX908+x|faOfiU&X#U9$-6mQAo)rt0EL-6mX9)aC4MCOBHNi>2SRpg zAjDkY9JSHsOyq9bx6a^d#qeFfP8SGudg*9VA0B{7_^a%yX-Hk3*}r-->sQ`Y3_}mAMvVEYA~rAIosA`2y!2 zZoQ&cpB{QO@j*qlcL#vo)1N-6+dg+7H>PU!9J9?Ap&`f?v5EJD974Me>xdcd)@!u5 zl5+MRHi1jen5j7s576%meZ<7feU-5-sKvtYP79;I{)4v3Mfd&qHQlW;4@`liIG6$? z4mw*yG|T=0Z4U-9s^<)4KTtpa{a&2RNxHScLUw$zQ$(Rwdq#C#m5kW2C39xh*V{$q zN+lzOH(}$b{}R4e+D`^ge96x$wbS02M){Fm{e*z7hWe zi&JaR?idb=gc|v|?iq5M8tcPzZzFdqiudO^Yg~~OjOimPOqD_} znhfcFq754#{WkD0`g68$Be$!2Jt2LjwZOkwkvLLCh%67MU0{%N(#&?Ev6cTU(~|5# z^p8E45IcVB$W_KabJX!;m+y;PQMYf)9K)2)l8AnbV3TyC=6xmvZ>27vW_qIVo8vt}elOgg?o+KxQJ z{UQrlc735{Tq~PxLUAFZr-$4aHnmJoOpk0z%gWqy0&xO*lF-#Q>3IcDz}G(TBZLt~ z7q~RSMW421wbAj2?0T}^TBRcM3H&K58_iIeO`Dg_*8tsO7qQ+%>`FBK65%W*0pgYy zrk|tH%M^9Z=vgi<;*C+M57%J{u1SYfPq4|Np16#qt-UeyLl)k6RL_?=q&58107OCcU&94j_Zky6 zL!rKX6(#ZaE2MLcvA#T4>=-rVy$#>Byr{B%^S>1@rHB7RK=>(gN&Cr{ z%LngWkc>)KlmVX5%eAHsHV*X#H_UVykT;-{mTlt`o3Dn9Sp_*&fPy4}=jw4FeAtbh zIh)Lv)5M(^g^!&TyVioP9Vh*#)=Ca(iLHE?%SOU=%Z8nLO7myLx5Go?!O=jc^T)2Z zc7q~P#b(N*F%=NciahwK2)pkB3ys>^Ls;YXX;zCOA6Sr8+M3W#sYmpf8^f$T{R8C1 zIuU;RBiD}77+e)duW)-zG=vv5p`+Z&7dyM|NA@+(L91?Pg9w7s%?M&d^gK*=C})%# z@Z)$sZdwkv9P}qK`ybpXX&+n-4oD0a!s6AU)p1_iD8Tp^XUbL@43rrr#dL;mF(+npPa9dX@Wgj;?TLXt&a*3D-id;ThCDtlDG?y=;5$BJQAVoq~>uF6E!dyyHd?w z9dkl26Dj;4A*s8;0viy*#6iJ8HNI4!H{02%_A2Pc zO1tvglwv{^5j- ztHoAP7c~5W6S=hUKHWC+mabNuo8Tfzf|hICi569=<5;7c;aklZ2)E6b-py3EIc}P@x_o*L! zfhQzCFlBbghGSSaujQ7GBkH0ceJnNARiuhc`wg8qqBADdwd;S;#~Doq_}3C>2auP+`RH(FMh# zvk`yZ0vR<2mkLlLRV#73{eJ){K-Rw)grRWC?);k6+qsWB(6SP1w0#8jm61BYZB5_6 z#x5nKFe*9p8Oh(A185c4t?XJk#cr7S-hH&9BXcPI!QbGi9-UzuRU#9jrfDf}RmlP! zbX$#Rj~wvILw?kji77l|K8K50{63P}w7KAL+NmtpW|tMY)w2Cx{BF}CrTEnut!^|q zP(&dZ3dovG6&3M@=hcm{#~cnIUg+Z27yzc}F-Mbd z|Bd?o8rX52_aY9vkdwmYE_RIp+nyFRr%z;VrWCR^n3WP_b~iy_b=Vq50{~a|iQQNd z{>HV;3ai}7yTVT3jd0E{1oU62>C72U|6W8Mj#7Jy)^Qj>7VA?1GUd}|SDgC7Uq@B? z`C-{Qs*;oZTEVEGVwpCEYB4JM_47c^WCLpX3NYE`z0GC|3(Y3wBE3G8o=JAn<<^-0k>oF6{&CX+6C* z4AmcNN2U9C|7I9H?;4WIEDC_dqb+mvBbtA}FJN@DWgP>ZZKgu(HqYvybl)7J2N zq?{r*m*{fprm#KnjqU$Ti=<`yJ1m$OtxhWlY==2h|Fi+c@;IL0VHeQkdCT^X)hGQe zs$1m?g489zSOzVu@ksgIqKUs5wB79cx^JN?FqD~(?jb#GOAR|q-Z+9Iqi* zvypt`e4MfGcWHC2K^0pTwpYiG?vo$05TRmWhfJ>PI~Whb7o0@?&wQ&LzE~R@`Dio) zzDlFmc@x;K_=ePfMTPr{EF0@*FsgK`T;vE?VMN!zV>*I9>2@)o-TM;pCA7iNSpDQ0 zK)A#>G;*smsmZO%u;fw6p{CT?r>cFBBy0+tZ}tdy%Z!UOb~5%k?9oX8!U({RYWJj- z?48r0eV5w<8tW=!ixH)+Ex#6knsnGlnhnR<)E?mlPM2K4{}C3U$fod$!k*F_xXCo2|5MdYvP@BHeZpnXpBJ8*=YulSxoN zx|>Hk+K#Vw_|sS zdLDLbv=>*ND(EbF*XGF1H)*i5agZT3%>0b1EDCXNJ=FuZc`Jwru#IN7Psx6-_h#{SFvW;g9rBuf_9!EJjW_4LWo& zTL-JHiu?Z<*RPxMQnN>zINZQnLHvy?O?dE7Crv*cpK8(|?7Lo-oW{MhP&4+nk53C| zHLVsFp^H@-m*;A=K{k)cV|ZoAYvbdl093ZKzF(uKm^cAh)Fw%bmfdD>L;2nGj$bX$ zs)&SqF!%A zR(hA}RekE!7Enwh@wbTPm{zMF=4)W2ZJArXm%_OnhqvUYNd(6jM<@37>vok=n;I6% zb<0%icZ^1^8i8=On`{AyD9~=p_3$?0HjhJ|2gw*T$<$G$dF3TNc>G`=rE{fCx#3?0 zzudS5HA7d@g$&@`@vZQ!R!vsNP+;;)&uR|`(p_Yd(H+Gv?%nylqfD~d){jFd$*+Bujx`Xv|Op~ zY<~m~YA}yPK|{@ z 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 @zVtf}~2QQ8}k)EmZ(V2m-t}M$m{V8oN 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 literal 0 HcmV?d00001 diff --git a/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot b/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot new file mode 100644 index 00000000000..11149718950 --- /dev/null +++ b/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot @@ -0,0 +1,24 @@ +// TW Snapshot +// Input SHA-256: b157139c7d41cd5d9bc1829c714121545a8e42ea64c094db8081d9741b032be0 + +// Sprite1 script +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ () { +yield* executeInCompatibilityLayer({"MESSAGE":"plan 1",}, b0, false, false, "f", null); +yield* thread.procedures["ZBlock A %s"]("Hai!!!"); +yield* executeInCompatibilityLayer({"MESSAGE":"end",}, b0, false, false, "k", null); +retire(); return; +}; }) + +// Sprite1 ZBlock A %s +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ_Block_A_ (p0) { +if ((("" + p0).toLowerCase() === "Hai!!!".toLowerCase())) { +yield* executeInCompatibilityLayer({"MESSAGE":"pass did not cast",}, b0, false, false, "m", null); +} else { +yield* executeInCompatibilityLayer({"MESSAGE":"fail was casted",}, b0, false, false, "n", null); +} +return ""; +}; }) diff --git a/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot b/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot new file mode 100644 index 00000000000..11149718950 --- /dev/null +++ b/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot @@ -0,0 +1,24 @@ +// TW Snapshot +// Input SHA-256: b157139c7d41cd5d9bc1829c714121545a8e42ea64c094db8081d9741b032be0 + +// Sprite1 script +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ () { +yield* executeInCompatibilityLayer({"MESSAGE":"plan 1",}, b0, false, false, "f", null); +yield* thread.procedures["ZBlock A %s"]("Hai!!!"); +yield* executeInCompatibilityLayer({"MESSAGE":"end",}, b0, false, false, "k", null); +retire(); return; +}; }) + +// Sprite1 ZBlock A %s +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ_Block_A_ (p0) { +if ((("" + p0).toLowerCase() === "Hai!!!".toLowerCase())) { +yield* executeInCompatibilityLayer({"MESSAGE":"pass did not cast",}, b0, false, false, "m", null); +} else { +yield* executeInCompatibilityLayer({"MESSAGE":"fail was casted",}, b0, false, false, "n", null); +} +return ""; +}; })