From 6ce88f24de79feb23b147dd09500d8020e62b835 Mon Sep 17 00:00:00 2001 From: Adrian Wielgosik Date: Sat, 20 Apr 2024 21:18:53 +0200 Subject: [PATCH] avm2: Add an extra test for sparse arrays --- .../tests/swfs/avm2/array_sparse_ops/Test.as | 63 ++++++++++++++++++ .../swfs/avm2/array_sparse_ops/output.txt | 41 ++++++++++++ .../tests/swfs/avm2/array_sparse_ops/test.swf | Bin 0 -> 823 bytes .../swfs/avm2/array_sparse_ops/test.toml | 1 + 4 files changed, 105 insertions(+) create mode 100644 tests/tests/swfs/avm2/array_sparse_ops/Test.as create mode 100644 tests/tests/swfs/avm2/array_sparse_ops/output.txt create mode 100644 tests/tests/swfs/avm2/array_sparse_ops/test.swf create mode 100644 tests/tests/swfs/avm2/array_sparse_ops/test.toml diff --git a/tests/tests/swfs/avm2/array_sparse_ops/Test.as b/tests/tests/swfs/avm2/array_sparse_ops/Test.as new file mode 100644 index 000000000..89e23a9e7 --- /dev/null +++ b/tests/tests/swfs/avm2/array_sparse_ops/Test.as @@ -0,0 +1,63 @@ +// compiled with mxmlc + + + +var arr = [1, 2]; +arr[50] = 6; +arr[100] = 10; +arr[500] = 11; + +trace(arr[0]); +trace(arr[50]); +trace(arr[100]); +trace(arr[500]); +trace(arr[1000]); +trace(arr.length); +trace("// delete") +delete arr[50]; +trace(arr[50]); +trace(arr[100]); +trace("// push") +arr.push(12); +trace(arr.length); +trace(arr[501]); +trace(arr.pop()); +trace(arr.length); +trace(arr[500]); +trace("// for") +for (var i in arr) { + trace(i); +} +trace("// for each") +for each (var i in arr) { + trace(i); +} +trace("// shift"); +trace(arr.shift()); +trace(arr.length); +trace(arr[0]); +trace(arr[99]); +trace(arr[499]); +trace("// shift") +arr.unshift(1); +trace(arr.length); +trace(arr[0]); +trace(arr[100]); +trace(arr[500]); +trace("// removeAt"); +trace(arr.removeAt(150)); +trace(arr.length); +trace(arr[499]); +trace(arr[500]); + + +package { + import flash.display.MovieClip; + import flash.text.TextField; + + public class Test extends MovieClip { + public function Test(){ + } + } +} + diff --git a/tests/tests/swfs/avm2/array_sparse_ops/output.txt b/tests/tests/swfs/avm2/array_sparse_ops/output.txt new file mode 100644 index 000000000..540e0fbe1 --- /dev/null +++ b/tests/tests/swfs/avm2/array_sparse_ops/output.txt @@ -0,0 +1,41 @@ +1 +6 +10 +11 +undefined +501 +// delete +undefined +10 +// push +502 +12 +12 +501 +11 +// for +0 +1 +100 +500 +// for each +1 +2 +10 +11 +// shift +1 +500 +2 +10 +11 +// shift +501 +1 +10 +11 +// removeAt +undefined +500 +11 +undefined diff --git a/tests/tests/swfs/avm2/array_sparse_ops/test.swf b/tests/tests/swfs/avm2/array_sparse_ops/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..3f4544e921ef45cfc762b4d9c05681bfeffc1444 GIT binary patch literal 823 zcmV-71IYYZS5q>E1pojh0{{SB001BW06YKujv4yj=Vl0?JwAo?b#KsqVJOXhixy4a z1v37mOh!q!duw(1D_l1z3z0VgHxB9Y;ryOt+H4UaGwq-bc5tB0m@amJ@Zeci1_!QZnT84W^-kDu!b~qNjlRVSVp3_xhTH3JNC+2)1J*>=-p>|kv2*_BK)@TdzxW~s5 zRX~U5S-?);A+G44YL3M0*f=<)^i{biPBGOIR$lYO&{zPAusrYQ+MNi=aD#T4!$ zPkS*y6Mr~&jb2>K)qny&rD&(ESY3$E?lK{?1zUms&{I3Vb0+e_VuJ%g*!>e*m8J?242(Fwy)sIf>4Gx4!fXex2WWcMOg|y zF^JjyAW=Ou?@!q66s&x;U-91`EX0qt-p!YR25EDMsyv;>QPW3a1AUvRR*Uq#5i&3F z7YS69i@avwT&)!iNbr7*kcnB_0_EwO9?+ygf+%Fg$%gWu=t?BwB`waKEH0;+>*&txis_~hV$rEb@g{K z4&)9nz_Nf4XqO5QD|-)B<|)cc4Kl?e#&h{~C3H{yx_X>?hGMg^*%v?1Tl6d|L=s0T z0oBgP@>!KZlPWC)@=5WovPSY-Sbp;wg0XY0fcPgpm)%f3@sX$b#hM0-{l~v2Gy(k} zYT6#wyFD@h)+5XJN}1sRc8tpC@^N(p9-N&z_7M4Pz;I+RI-uRx>RvIyn>&+-Db|55 zcg8MjnVcCW?u@|cf8dY-1vl1xC$0wJ+dg>H{&o0pLR4VZt8