From 1a354d58090f2dd477c356a97f38d614db65772e Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Fri, 28 Jul 2023 00:15:08 +0200 Subject: [PATCH] tests: Port avmplus ecma3 Expression tests --- .../Expressions/StrictEquality_001/Test.as | 71 + .../Expressions/StrictEquality_001/config.xml | 13 + .../Expressions/StrictEquality_001/output.txt | 7 + .../Expressions/StrictEquality_001/test.swf | Bin 0 -> 2540 bytes .../Expressions/StrictEquality_001/test.toml | 1 + .../ecma3/Expressions/e11_10_1/Test.as | 223 ++ .../ecma3/Expressions/e11_10_1/config.xml | 13 + .../ecma3/Expressions/e11_10_1/output.txt | 31 + .../ecma3/Expressions/e11_10_1/test.swf | Bin 0 -> 3479 bytes .../ecma3/Expressions/e11_10_1/test.toml | 1 + .../ecma3/Expressions/e11_10_2/Test.as | 218 ++ .../ecma3/Expressions/e11_10_2/config.xml | 13 + .../ecma3/Expressions/e11_10_2/output.txt | 1089 +++++++++ .../ecma3/Expressions/e11_10_2/test.swf | Bin 0 -> 3476 bytes .../ecma3/Expressions/e11_10_2/test.toml | 1 + .../ecma3/Expressions/e11_10_3/Test.as | 217 ++ .../ecma3/Expressions/e11_10_3/config.xml | 13 + .../ecma3/Expressions/e11_10_3/output.txt | 1089 +++++++++ .../ecma3/Expressions/e11_10_3/test.swf | Bin 0 -> 3477 bytes .../ecma3/Expressions/e11_10_3/test.toml | 1 + .../ecma3/Expressions/e11_11/Test.as | 84 + .../ecma3/Expressions/e11_11/config.xml | 13 + .../ecma3/Expressions/e11_11/output.txt | 62 + .../ecma3/Expressions/e11_11/test.swf | Bin 0 -> 3874 bytes .../ecma3/Expressions/e11_11/test.toml | 1 + .../ecma3/Expressions/e11_12_1/Test.as | 29 + .../ecma3/Expressions/e11_12_1/config.xml | 13 + .../ecma3/Expressions/e11_12_1/output.txt | 7 + .../ecma3/Expressions/e11_12_1/test.swf | Bin 0 -> 2622 bytes .../ecma3/Expressions/e11_12_1/test.toml | 1 + .../ecma3/Expressions/e11_12_3/Test.as | 30 + .../ecma3/Expressions/e11_12_3/config.xml | 13 + .../ecma3/Expressions/e11_12_3/output.txt | 1 + .../ecma3/Expressions/e11_12_3/test.swf | Bin 0 -> 2476 bytes .../ecma3/Expressions/e11_12_3/test.toml | 1 + .../ecma3/Expressions/e11_12_4/Test.as | 30 + .../ecma3/Expressions/e11_12_4/config.xml | 13 + .../ecma3/Expressions/e11_12_4/output.txt | 1 + .../ecma3/Expressions/e11_12_4/test.swf | Bin 0 -> 2477 bytes .../ecma3/Expressions/e11_12_4/test.toml | 1 + .../ecma3/Expressions/e11_13/Test.as | 29 + .../ecma3/Expressions/e11_13/config.xml | 13 + .../ecma3/Expressions/e11_13/output.txt | 7 + .../ecma3/Expressions/e11_13/test.swf | Bin 0 -> 2624 bytes .../ecma3/Expressions/e11_13/test.toml | 1 + .../ecma3/Expressions/e11_13_1/Test.as | 23 + .../ecma3/Expressions/e11_13_1/config.xml | 13 + .../ecma3/Expressions/e11_13_1/output.txt | 1 + .../ecma3/Expressions/e11_13_1/test.swf | Bin 0 -> 2443 bytes .../ecma3/Expressions/e11_13_1/test.toml | 1 + .../ecma3/Expressions/e11_13_2_1/Test.as | 93 + .../ecma3/Expressions/e11_13_2_1/config.xml | 13 + .../ecma3/Expressions/e11_13_2_1/output.txt | 30 + .../ecma3/Expressions/e11_13_2_1/test.swf | Bin 0 -> 3697 bytes .../ecma3/Expressions/e11_13_2_1/test.toml | 1 + .../ecma3/Expressions/e11_13_2_2/Test.as | 117 + .../ecma3/Expressions/e11_13_2_2/config.xml | 13 + .../ecma3/Expressions/e11_13_2_2/output.txt | 31 + .../ecma3/Expressions/e11_13_2_2/test.swf | Bin 0 -> 3634 bytes .../ecma3/Expressions/e11_13_2_2/test.toml | 1 + .../ecma3/Expressions/e11_13_2_3/Test.as | 137 ++ .../ecma3/Expressions/e11_13_2_3/config.xml | 13 + .../ecma3/Expressions/e11_13_2_3/output.txt | 40 + .../ecma3/Expressions/e11_13_2_3/test.swf | Bin 0 -> 3926 bytes .../ecma3/Expressions/e11_13_2_3/test.toml | 1 + .../ecma3/Expressions/e11_13_2_4/Test.as | 115 + .../ecma3/Expressions/e11_13_2_4/config.xml | 13 + .../ecma3/Expressions/e11_13_2_4/output.txt | 26 + .../ecma3/Expressions/e11_13_2_4/test.swf | Bin 0 -> 3479 bytes .../ecma3/Expressions/e11_13_2_4/test.toml | 1 + .../ecma3/Expressions/e11_13_2_5/Test.as | 117 + .../ecma3/Expressions/e11_13_2_5/config.xml | 13 + .../ecma3/Expressions/e11_13_2_5/output.txt | 26 + .../ecma3/Expressions/e11_13_2_5/test.swf | Bin 0 -> 3465 bytes .../ecma3/Expressions/e11_13_2_5/test.toml | 1 + .../ecma3/Expressions/e11_14_1/Test.as | 22 + .../ecma3/Expressions/e11_14_1/config.xml | 13 + .../ecma3/Expressions/e11_14_1/output.txt | 3 + .../ecma3/Expressions/e11_14_1/test.swf | Bin 0 -> 2502 bytes .../ecma3/Expressions/e11_14_1/test.toml | 1 + .../ecma3/Expressions/e11_1_1/Test.as | 77 + .../ecma3/Expressions/e11_1_1/config.xml | 13 + .../ecma3/Expressions/e11_1_1/output.txt | 7 + .../ecma3/Expressions/e11_1_1/test.swf | Bin 0 -> 2872 bytes .../ecma3/Expressions/e11_1_1/test.toml | 1 + .../ecma3/Expressions/e11_1_4/Test.as | 201 ++ .../ecma3/Expressions/e11_1_4/config.xml | 13 + .../ecma3/Expressions/e11_1_4/output.txt | 28 + .../ecma3/Expressions/e11_1_4/test.swf | Bin 0 -> 3617 bytes .../ecma3/Expressions/e11_1_4/test.toml | 2 + .../ecma3/Expressions/e11_1_5/Test.as | 94 + .../ecma3/Expressions/e11_1_5/config.xml | 13 + .../ecma3/Expressions/e11_1_5/output.txt | 20 + .../ecma3/Expressions/e11_1_5/test.swf | Bin 0 -> 3230 bytes .../ecma3/Expressions/e11_1_5/test.toml | 1 + .../ecma3/Expressions/e11_1_6/Test.as | 125 + .../ecma3/Expressions/e11_1_6/config.xml | 13 + .../ecma3/Expressions/e11_1_6/output.txt | 25 + .../ecma3/Expressions/e11_1_6/test.swf | Bin 0 -> 3670 bytes .../ecma3/Expressions/e11_1_6/test.toml | 1 + .../ecma3/Expressions/e11_2_1_1/Test.as | 336 +++ .../ecma3/Expressions/e11_2_1_1/config.xml | 13 + .../ecma3/Expressions/e11_2_1_1/output.txt | 254 ++ .../ecma3/Expressions/e11_2_1_1/test.swf | Bin 0 -> 9091 bytes .../ecma3/Expressions/e11_2_1_1/test.toml | 2 + .../ecma3/Expressions/e11_2_1_2/Test.as | 59 + .../ecma3/Expressions/e11_2_1_2/config.xml | 13 + .../ecma3/Expressions/e11_2_1_2/output.txt | 8 + .../ecma3/Expressions/e11_2_1_2/test.swf | Bin 0 -> 2750 bytes .../ecma3/Expressions/e11_2_1_2/test.toml | 1 + .../ecma3/Expressions/e11_2_1_3/Test.as | 55 + .../ecma3/Expressions/e11_2_1_3/config.xml | 13 + .../ecma3/Expressions/e11_2_1_3/output.txt | 2 + .../ecma3/Expressions/e11_2_1_3/test.swf | Bin 0 -> 2693 bytes .../ecma3/Expressions/e11_2_1_3/test.toml | 1 + .../ecma3/Expressions/e11_2_1_4_rt/Test.as | 59 + .../ecma3/Expressions/e11_2_1_4_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_1_4_rt/output.txt | 2 + .../ecma3/Expressions/e11_2_1_4_rt/test.swf | Bin 0 -> 2692 bytes .../ecma3/Expressions/e11_2_1_4_rt/test.toml | 1 + .../ecma3/Expressions/e11_2_1_5/Test.as | 59 + .../ecma3/Expressions/e11_2_1_5/config.xml | 13 + .../ecma3/Expressions/e11_2_1_5/output.txt | 10 + .../ecma3/Expressions/e11_2_1_5/test.swf | Bin 0 -> 2782 bytes .../ecma3/Expressions/e11_2_1_5/test.toml | 1 + .../ecma3/Expressions/e11_2_2_10_rt/Test.as | 44 + .../Expressions/e11_2_2_10_rt/config.xml | 13 + .../Expressions/e11_2_2_10_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_10_rt/test.swf | Bin 0 -> 2631 bytes .../ecma3/Expressions/e11_2_2_10_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_11/Test.as | 42 + .../ecma3/Expressions/e11_2_2_11/config.xml | 13 + .../ecma3/Expressions/e11_2_2_11/output.txt | 1 + .../ecma3/Expressions/e11_2_2_11/test.swf | Bin 0 -> 2726 bytes .../ecma3/Expressions/e11_2_2_11/test.toml | 1 + .../ecma3/Expressions/e11_2_2_12_rt/Test.as | 29 + .../Expressions/e11_2_2_12_rt/config.xml | 13 + .../Expressions/e11_2_2_12_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_12_rt/test.swf | Bin 0 -> 2483 bytes .../ecma3/Expressions/e11_2_2_12_rt/test.toml | 1 + .../ecma3/Expressions/e11_2_2_1_rt/Test.as | 45 + .../ecma3/Expressions/e11_2_2_1_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_1_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_1_rt/test.swf | Bin 0 -> 2636 bytes .../ecma3/Expressions/e11_2_2_1_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_2_rt/Test.as | 45 + .../ecma3/Expressions/e11_2_2_2_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_2_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_2_rt/test.swf | Bin 0 -> 2634 bytes .../ecma3/Expressions/e11_2_2_2_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_3_rt/Test.as | 44 + .../ecma3/Expressions/e11_2_2_3_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_3_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_3_rt/test.swf | Bin 0 -> 2630 bytes .../ecma3/Expressions/e11_2_2_3_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_4_rt/Test.as | 45 + .../ecma3/Expressions/e11_2_2_4_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_4_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_4_rt/test.swf | Bin 0 -> 2634 bytes .../ecma3/Expressions/e11_2_2_4_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_5_rt/Test.as | 44 + .../ecma3/Expressions/e11_2_2_5_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_5_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_5_rt/test.swf | Bin 0 -> 2630 bytes .../ecma3/Expressions/e11_2_2_5_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_6_rt/Test.as | 43 + .../ecma3/Expressions/e11_2_2_6_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_6_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_6_rt/test.swf | Bin 0 -> 2634 bytes .../ecma3/Expressions/e11_2_2_6_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_7_rt/Test.as | 44 + .../ecma3/Expressions/e11_2_2_7_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_7_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_7_rt/test.swf | Bin 0 -> 2641 bytes .../ecma3/Expressions/e11_2_2_7_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_8_rt/Test.as | 44 + .../ecma3/Expressions/e11_2_2_8_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_8_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_8_rt/test.swf | Bin 0 -> 2644 bytes .../ecma3/Expressions/e11_2_2_8_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_2_9_rt/Test.as | 43 + .../ecma3/Expressions/e11_2_2_9_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_2_9_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_2_9_rt/test.swf | Bin 0 -> 2638 bytes .../ecma3/Expressions/e11_2_2_9_rt/test.toml | 2 + .../ecma3/Expressions/e11_2_3_1/Test.as | 49 + .../ecma3/Expressions/e11_2_3_1/config.xml | 13 + .../ecma3/Expressions/e11_2_3_1/output.txt | 4 + .../ecma3/Expressions/e11_2_3_1/test.swf | Bin 0 -> 2549 bytes .../ecma3/Expressions/e11_2_3_1/test.toml | 1 + .../ecma3/Expressions/e11_2_3_3_rt/Test.as | 34 + .../ecma3/Expressions/e11_2_3_3_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_3_3_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_3_3_rt/test.swf | Bin 0 -> 2586 bytes .../ecma3/Expressions/e11_2_3_3_rt/test.toml | 1 + .../ecma3/Expressions/e11_2_3_4_rt/Test.as | 34 + .../ecma3/Expressions/e11_2_3_4_rt/config.xml | 13 + .../ecma3/Expressions/e11_2_3_4_rt/output.txt | 1 + .../ecma3/Expressions/e11_2_3_4_rt/test.swf | Bin 0 -> 2582 bytes .../ecma3/Expressions/e11_2_3_4_rt/test.toml | 1 + .../ecma3/Expressions/e11_2_3_5/Test.as | 25 + .../ecma3/Expressions/e11_2_3_5/config.xml | 13 + .../ecma3/Expressions/e11_2_3_5/output.txt | 1 + .../ecma3/Expressions/e11_2_3_5/test.swf | Bin 0 -> 2441 bytes .../ecma3/Expressions/e11_2_3_5/test.toml | 1 + .../ecma3/Expressions/e11_3_1/Test.as | 173 ++ .../ecma3/Expressions/e11_3_1/config.xml | 13 + .../ecma3/Expressions/e11_3_1/output.txt | 58 + .../ecma3/Expressions/e11_3_1/test.swf | Bin 0 -> 3754 bytes .../ecma3/Expressions/e11_3_1/test.toml | 1 + .../ecma3/Expressions/e11_3_2/Test.as | 198 ++ .../ecma3/Expressions/e11_3_2/config.xml | 13 + .../ecma3/Expressions/e11_3_2/output.txt | 58 + .../ecma3/Expressions/e11_3_2/test.swf | Bin 0 -> 4103 bytes .../ecma3/Expressions/e11_3_2/test.toml | 1 + .../ecma3/Expressions/e11_4_1/Test.as | 70 + .../ecma3/Expressions/e11_4_1/config.xml | 13 + .../ecma3/Expressions/e11_4_1/output.txt | 18 + .../ecma3/Expressions/e11_4_1/test.swf | Bin 0 -> 3109 bytes .../ecma3/Expressions/e11_4_1/test.toml | 2 + .../ecma3/Expressions/e11_4_2/Test.as | 61 + .../ecma3/Expressions/e11_4_2/config.xml | 13 + .../ecma3/Expressions/e11_4_2/output.txt | 24 + .../ecma3/Expressions/e11_4_2/test.swf | Bin 0 -> 3151 bytes .../ecma3/Expressions/e11_4_2/test.toml | 1 + .../ecma3/Expressions/e11_4_4/Test.as | 151 ++ .../ecma3/Expressions/e11_4_4/config.xml | 13 + .../ecma3/Expressions/e11_4_4/output.txt | 52 + .../ecma3/Expressions/e11_4_4/test.swf | Bin 0 -> 3758 bytes .../ecma3/Expressions/e11_4_4/test.toml | 1 + .../ecma3/Expressions/e11_4_5/Test.as | 151 ++ .../ecma3/Expressions/e11_4_5/config.xml | 13 + .../ecma3/Expressions/e11_4_5/output.txt | 52 + .../ecma3/Expressions/e11_4_5/test.swf | Bin 0 -> 3757 bytes .../ecma3/Expressions/e11_4_5/test.toml | 1 + .../ecma3/Expressions/e11_4_6/Test.as | 264 ++ .../ecma3/Expressions/e11_4_6/config.xml | 13 + .../ecma3/Expressions/e11_4_6/output.txt | 190 ++ .../ecma3/Expressions/e11_4_6/test.swf | Bin 0 -> 6973 bytes .../ecma3/Expressions/e11_4_6/test.toml | 1 + .../ecma3/Expressions/e11_4_7/Test.as | 213 ++ .../ecma3/Expressions/e11_4_7/config.xml | 13 + .../ecma3/Expressions/e11_4_7/output.txt | 146 ++ .../ecma3/Expressions/e11_4_7/test.swf | Bin 0 -> 5939 bytes .../ecma3/Expressions/e11_4_7/test.toml | 1 + .../ecma3/Expressions/e11_4_8/Test.as | 170 ++ .../ecma3/Expressions/e11_4_8/config.xml | 13 + .../ecma3/Expressions/e11_4_8/output.txt | 70 + .../ecma3/Expressions/e11_4_8/test.swf | Bin 0 -> 3312 bytes .../ecma3/Expressions/e11_4_8/test.toml | 1 + .../ecma3/Expressions/e11_4_9/Test.as | 53 + .../ecma3/Expressions/e11_4_9/config.xml | 13 + .../ecma3/Expressions/e11_4_9/output.txt | 27 + .../ecma3/Expressions/e11_4_9/test.swf | Bin 0 -> 3090 bytes .../ecma3/Expressions/e11_4_9/test.toml | 1 + .../ecma3/Expressions/e11_5_1/Test.as | 78 + .../ecma3/Expressions/e11_5_1/config.xml | 13 + .../ecma3/Expressions/e11_5_1/output.txt | 47 + .../ecma3/Expressions/e11_5_1/test.swf | Bin 0 -> 3553 bytes .../ecma3/Expressions/e11_5_1/test.toml | 1 + .../ecma3/Expressions/e11_5_2/Test.as | 112 + .../ecma3/Expressions/e11_5_2/config.xml | 13 + .../ecma3/Expressions/e11_5_2/output.txt | 58 + .../ecma3/Expressions/e11_5_2/test.swf | Bin 0 -> 3767 bytes .../ecma3/Expressions/e11_5_2/test.toml | 1 + .../ecma3/Expressions/e11_5_3/Test.as | 126 + .../ecma3/Expressions/e11_5_3/config.xml | 13 + .../ecma3/Expressions/e11_5_3/output.txt | 70 + .../ecma3/Expressions/e11_5_3/test.swf | Bin 0 -> 4047 bytes .../ecma3/Expressions/e11_5_3/test.toml | 1 + .../ecma3/Expressions/e11_6_1_1/Test.as | 119 + .../ecma3/Expressions/e11_6_1_1/config.xml | 13 + .../ecma3/Expressions/e11_6_1_1/output.txt | 12 + .../ecma3/Expressions/e11_6_1_1/test.swf | Bin 0 -> 2980 bytes .../ecma3/Expressions/e11_6_1_1/test.toml | 2 + .../ecma3/Expressions/e11_6_1_2/Test.as | 141 ++ .../ecma3/Expressions/e11_6_1_2/config.xml | 13 + .../ecma3/Expressions/e11_6_1_2/output.txt | 13 + .../ecma3/Expressions/e11_6_1_2/test.swf | Bin 0 -> 3061 bytes .../ecma3/Expressions/e11_6_1_2/test.toml | 2 + .../ecma3/Expressions/e11_6_1_3/Test.as | 117 + .../ecma3/Expressions/e11_6_1_3/config.xml | 13 + .../ecma3/Expressions/e11_6_1_3/output.txt | 9 + .../ecma3/Expressions/e11_6_1_3/test.swf | Bin 0 -> 2914 bytes .../ecma3/Expressions/e11_6_1_3/test.toml | 2 + .../ecma3/Expressions/e11_6_2_1/Test.as | 150 ++ .../ecma3/Expressions/e11_6_2_1/config.xml | 13 + .../ecma3/Expressions/e11_6_2_1/output.txt | 18 + .../ecma3/Expressions/e11_6_2_1/test.swf | Bin 0 -> 3444 bytes .../ecma3/Expressions/e11_6_2_1/test.toml | 2 + .../ecma3/Expressions/e11_6_3/Test.as | 73 + .../ecma3/Expressions/e11_6_3/config.xml | 13 + .../ecma3/Expressions/e11_6_3/output.txt | 34 + .../ecma3/Expressions/e11_6_3/test.swf | Bin 0 -> 3436 bytes .../ecma3/Expressions/e11_6_3/test.toml | 1 + .../ecma3/Expressions/e11_7_1/Test.as | 175 ++ .../ecma3/Expressions/e11_7_1/config.xml | 13 + .../ecma3/Expressions/e11_7_1/output.txt | 1089 +++++++++ .../ecma3/Expressions/e11_7_1/test.swf | Bin 0 -> 3422 bytes .../ecma3/Expressions/e11_7_1/test.toml | 1 + .../ecma3/Expressions/e11_7_2/Test.as | 191 ++ .../ecma3/Expressions/e11_7_2/config.xml | 13 + .../ecma3/Expressions/e11_7_2/output.txt | 2178 +++++++++++++++++ .../ecma3/Expressions/e11_7_2/test.swf | Bin 0 -> 3410 bytes .../ecma3/Expressions/e11_7_2/test.toml | 1 + .../ecma3/Expressions/e11_7_3/Test.as | 174 ++ .../ecma3/Expressions/e11_7_3/config.xml | 13 + .../ecma3/Expressions/e11_7_3/output.txt | 1089 +++++++++ .../ecma3/Expressions/e11_7_3/test.swf | Bin 0 -> 3365 bytes .../ecma3/Expressions/e11_7_3/test.toml | 1 + .../ecma3/Expressions/e11_8_1/Test.as | 119 + .../ecma3/Expressions/e11_8_1/config.xml | 13 + .../ecma3/Expressions/e11_8_1/output.txt | 53 + .../ecma3/Expressions/e11_8_1/test.swf | Bin 0 -> 4056 bytes .../ecma3/Expressions/e11_8_1/test.toml | 1 + .../ecma3/Expressions/e11_8_2/Test.as | 102 + .../ecma3/Expressions/e11_8_2/config.xml | 13 + .../ecma3/Expressions/e11_8_2/output.txt | 52 + .../ecma3/Expressions/e11_8_2/test.swf | Bin 0 -> 3950 bytes .../ecma3/Expressions/e11_8_2/test.toml | 1 + .../ecma3/Expressions/e11_8_3/Test.as | 106 + .../ecma3/Expressions/e11_8_3/config.xml | 13 + .../ecma3/Expressions/e11_8_3/output.txt | 56 + .../ecma3/Expressions/e11_8_3/test.swf | Bin 0 -> 4064 bytes .../ecma3/Expressions/e11_8_3/test.toml | 1 + .../ecma3/Expressions/e11_8_4/Test.as | 107 + .../ecma3/Expressions/e11_8_4/config.xml | 13 + .../ecma3/Expressions/e11_8_4/output.txt | 56 + .../ecma3/Expressions/e11_8_4/test.swf | Bin 0 -> 4066 bytes .../ecma3/Expressions/e11_8_4/test.toml | 1 + .../ecma3/Expressions/e11_8_7/Test.as | 216 ++ .../ecma3/Expressions/e11_8_7/config.xml | 13 + .../ecma3/Expressions/e11_8_7/output.txt | 29 + .../ecma3/Expressions/e11_8_7/test.swf | Bin 0 -> 3438 bytes .../ecma3/Expressions/e11_8_7/test.toml | 1 + .../ecma3/Expressions/e11_9_1/Test.as | 120 + .../ecma3/Expressions/e11_9_1/config.xml | 13 + .../ecma3/Expressions/e11_9_1/output.txt | 47 + .../ecma3/Expressions/e11_9_1/test.swf | Bin 0 -> 3844 bytes .../ecma3/Expressions/e11_9_1/test.toml | 1 + .../ecma3/Expressions/e11_9_2/Test.as | 119 + .../ecma3/Expressions/e11_9_2/config.xml | 13 + .../ecma3/Expressions/e11_9_2/output.txt | 47 + .../ecma3/Expressions/e11_9_2/test.swf | Bin 0 -> 3845 bytes .../ecma3/Expressions/e11_9_2/test.toml | 1 + .../ecma3/Expressions/e11_9_3/Test.as | 116 + .../ecma3/Expressions/e11_9_3/config.xml | 13 + .../ecma3/Expressions/e11_9_3/output.txt | 47 + .../ecma3/Expressions/e11_9_3/test.swf | Bin 0 -> 3786 bytes .../ecma3/Expressions/e11_9_3/test.toml | 1 + .../ecma3/Expressions/e11_9_6_1/Test.as | 169 ++ .../ecma3/Expressions/e11_9_6_1/config.xml | 13 + .../ecma3/Expressions/e11_9_6_1/output.txt | 6 + .../ecma3/Expressions/e11_9_6_1/test.swf | Bin 0 -> 3207 bytes .../ecma3/Expressions/e11_9_6_1/test.toml | 1 + .../ecma3/Expressions/instanceof_001/Test.as | 106 + .../Expressions/instanceof_001/config.xml | 13 + .../Expressions/instanceof_001/output.txt | 14 + .../ecma3/Expressions/instanceof_001/test.swf | Bin 0 -> 2989 bytes .../Expressions/instanceof_001/test.toml | 1 + .../ecma3/Expressions/instanceof_002/Test.as | 83 + .../Expressions/instanceof_002/config.xml | 13 + .../Expressions/instanceof_002/output.txt | 6 + .../ecma3/Expressions/instanceof_002/test.swf | Bin 0 -> 2956 bytes .../Expressions/instanceof_002/test.toml | 1 + .../Expressions/instanceof_003_rt/Test.as | 83 + .../Expressions/instanceof_003_rt/config.xml | 13 + .../Expressions/instanceof_003_rt/output.txt | 30 + .../Expressions/instanceof_003_rt/test.swf | Bin 0 -> 2809 bytes .../Expressions/instanceof_003_rt/test.toml | 1 + .../Expressions/instanceof_004_rt/Test.as | 49 + .../Expressions/instanceof_004_rt/config.xml | 13 + .../Expressions/instanceof_004_rt/output.txt | 1 + .../Expressions/instanceof_004_rt/test.swf | Bin 0 -> 2784 bytes .../Expressions/instanceof_004_rt/test.toml | 1 + .../ecma3/Expressions/instanceof_006/Test.as | 93 + .../Expressions/instanceof_006/config.xml | 13 + .../Expressions/instanceof_006/output.txt | 1 + .../ecma3/Expressions/instanceof_006/test.swf | Bin 0 -> 2926 bytes .../Expressions/instanceof_006/test.toml | 1 + 380 files changed, 17486 insertions(+) create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.toml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/Test.as create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/config.xml create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/output.txt create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.swf create mode 100644 tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.toml diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/Test.as new file mode 100644 index 000000000..0d11ba5a2 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/Test.as @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "StrictEquality_001 - 11.9.6"; +// var VERSION = "ECMA_2"; +// var TITLE = "The strict equality operator ( === )"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + + // 1. If Type(x) is different from Type(y) return false + + // see bug 103471 for details + StrictEquality( true, new Boolean(true), true, array, item++); + StrictEquality( new Boolean(), false, true, array, item++); + StrictEquality( "", new String(), true, array, item++); + StrictEquality( new String("hi"), "hi", true, array, item++); + + // 2. If Type(x) is not Number go to step 9. + + // 3. If x is NaN, return false + StrictEquality( NaN, NaN, false, array, item++ ); + StrictEquality( NaN, 0, false, array, item++ ); + + // 4. If y is NaN, return false. + StrictEquality( 0, NaN, false, array, item++ ); + + // 5. if x is the same number value as y, return true + + // 6. If x is +0 and y is -0, return true + + // 7. If x is -0 and y is +0, return true + + // 8. Return false. + + + // 9. If Type(x) is String, then return true if x and y are exactly + // the same sequence of characters ( same length and same characters + // in corresponding positions.) Otherwise return false. + + // 10. If Type(x) is Boolean, return true if x and y are both true or + // both false. otherwise return false. + + + // Return true if x and y refer to the same object. Otherwise return + // false. + + // Return false. + return array; +} + +function StrictEquality( x, y, expect, array, item ) { + result = ( x === y ); + + array[item] = Assert.expectEq( + + x +" === " + y, + expect, + result ); +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/output.txt new file mode 100644 index 000000000..a5c721397 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/output.txt @@ -0,0 +1,7 @@ +true === true PASSED! +false === false PASSED! + === PASSED! +hi === hi PASSED! +NaN === NaN PASSED! +NaN === 0 PASSED! +0 === NaN PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/StrictEquality_001/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..66b4ff5c1cf394c755d2c753655fe9fb9014dbe3 GIT binary patch literal 2540 zcmVEykt(Fi-AilwjZ59k3BmuT}tu?G=kT5JD zTY%ReE3HOS3$!aFGBd(7EfF`LG$7>DRya)&2VSX5a)iz$tRIRI%i%x)LW);lx zfnBauH8D5xwYt49IoXU_ESv{DsGAihWU&xo6}Hc+wiTHT&+wd7`qn2ws^75 z#pZ%a+#_r_-p;xlk5)V3cTmq)%GMq;&+=^5O7?TZTccGWs9u()y|fqK8Ktg7&cp+`&e76SG2k4+`PM70p5vxa1u>~AMPSr4*Xlb zgO;TC@83W5%KY?Ie&fJ5f1l?ZKxp&c!{7goOMmljGs{MQ4gKIpNN7r?vCn2v0EPKP zy8q|D{Ncave!ciLBKK;w3NxzemTi`+yPjmdS`az$VXa)0%T*hTKz`@I!o{+6P%&Q8 zjoM+EEmg_~orT(d*eKTWENpW#HEvnVwAEDpYgVv(+m$g_>18htxN_U9GoLFajf%yZ z@MgVIIkR|q!0>@#S-51BE6R>tu2`WDLOP)OAilMgSoUb{cv(%xSJxBEJ(@dS*4%ik z7}GqinD|vQb;2}jrtg67+)gvAUa{4c_0+xide^g>vjuIpQp+2ajPF5w>GSwXVtsXM zyZ1K^Hwyar>^S#4s0JLy$N85BZ$_Qa$3x|=<5 zXjIyjzDJ4lYVwJr4n1OKx%Bb_?_JZ#JF?$s-5j;gcG79Kt=Maxug+69%dRmyOYA$m z$l*OOOp7(6@nbC*7PC5bnJuWdBqp7Lo#Nc;Mx|`ORGbr2P3OoiH~ZhE1t&-(zBM12 zi$-rn^7V4XE>{(8VPQd2;-+c5l=jNXol16yN}hFd zkT1X9th^h@*Mg|pZq1HqnkGo8ZIrEjQ3q{COEd#IikQ}=Yi^e`=MimZGx7LAVre_E ztU1i#J{Dt|+v#D$inX-XwJF8sWn`+$D^ji&*^5+(o_9jO>&6$S@vnk*j{Do1X}I00 zO-GtsRV?10jJieQmOXvY=NTY<-U0tWuYwfhS?Igh4+`q{4*A7gK|{S%1`oyJR`^5m zc}NFfKUF#vXT)9Lqn-c+xvX|8&d3Nz1Y`o3fI>heK!`*M_7UhH&`F?+K!8AyKsSLN zfKX@q9u&w}~f4;8S`Bs86CpFbwoFpfR8l@a@nz5bqL^mWh-gQj$n3l*;rr&DHElfk0Mlc=1bQ{whzK=)5{{`_sCjKYH|CIQj(LPKEF#QzM4u$5_VU=#HG*9Rb zp*}(jgbop22YQ*%Z9?}5y-MgugiaDVMd)=xX9z75+Tj^f&@WsvNX-{#Wi=GUq&KK|dP03X!zJkFR{b!*V-CU~U!Vp(y+W%3I3`_()gOfoz zbS>x|o(lR#FvcndG%fafoo7M1s6qfd7@!+wU@UkE0vMz*#Hk5-Hhj|f({w>K!gA_xIqpL!fUUPXL{h33w2l%X7r=01+*K8faTM{}`g?$c8w3gihb+_d_0D z@YPrE0=(w>+N*bshR`%FG;f=lw>rEk;Ku3Ds!*T4`SJVd?rR85ansL#obKj-!ApxBhgRXdnHU#>8H|0?_c!U6FtG+1&oeL>0xNaA=-8~597Ec?0OnwFt=s2^_+&yWW z=5gvS&SQNu#Mv@&f07rHs4Ax49!I~JF5oDGlYL;&*q0cb?#m4H^gd>wz1mk8RODhD zO$8Dk(>IQuI=KFom}F8XsTAL%S zKAC8URUzcPfF_%e?*h`AP=}&mCB$jb_^DZEeZ#3U*ZE}$D;?ZCCD!aF>TJO_n^+eB zR?bNr;3Ss2&Pe>=F^ukcI2@Gu%kT1WR5W6sldm}Q@T5^nryfFscShr+wAK5c_wTu3 zHvmX(ck~D@Cpee;^h-uxwqNfz`m+Q2pfQjg)HP!;JEUJRhO)!@xG|g^(I= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + + } + + return r; +} +function And( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" && ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + return ToInt32Decimal(result); +} +function Xor( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( (bs.charAt(bit) == "1" && ba.charAt(bit) == "0") || + (bs.charAt(bit) == "0" && ba.charAt(bit) == "1") + ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} +function Or( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" || ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/output.txt new file mode 100644 index 000000000..e9781fa60 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/output.txt @@ -0,0 +1,31 @@ +1 & 1 PASSED! +1 & 3 PASSED! +1 & 7 PASSED! +1 & 15 PASSED! +1 & 31 PASSED! +1 & 63 PASSED! +1 & 127 PASSED! +1 & 255 PASSED! +1 & 511 PASSED! +1 & 1023 PASSED! +1 & 2047 PASSED! +1 & 4095 PASSED! +1 & 8191 PASSED! +1 & 16383 PASSED! +1 & 32767 PASSED! +1 & 65535 PASSED! +1 & 131071 PASSED! +1 & 262143 PASSED! +1 & 524287 PASSED! +1 & 1048575 PASSED! +1 & 2097151 PASSED! +1 & 4194303 PASSED! +1 & 8388607 PASSED! +1 & 16777215 PASSED! +1 & 33554431 PASSED! +1 & 67108863 PASSED! +1 & 134217727 PASSED! +1 & 268435455 PASSED! +1 & 536870911 PASSED! +1 & 1073741823 PASSED! +1 & 2147483647 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..88625e26cef03b7b61264749b874a53348416333 GIT binary patch literal 3479 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 Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + + } + + return r; +} +function And( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" && ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + return ToInt32Decimal(result); +} +function Xor( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( (bs.charAt(bit) == "1" && ba.charAt(bit) == "0") || + (bs.charAt(bit) == "0" && ba.charAt(bit) == "1") + ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} +function Or( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" || ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/output.txt new file mode 100644 index 000000000..0d427eec7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/output.txt @@ -0,0 +1,1089 @@ +1 | 1 PASSED! +1 | 3 PASSED! +1 | 7 PASSED! +1 | 15 PASSED! +1 | 31 PASSED! +1 | 63 PASSED! +1 | 127 PASSED! +1 | 255 PASSED! +1 | 511 PASSED! +1 | 1023 PASSED! +1 | 2047 PASSED! +1 | 4095 PASSED! +1 | 8191 PASSED! +1 | 16383 PASSED! +1 | 32767 PASSED! +1 | 65535 PASSED! +1 | 131071 PASSED! +1 | 262143 PASSED! +1 | 524287 PASSED! +1 | 1048575 PASSED! +1 | 2097151 PASSED! +1 | 4194303 PASSED! +1 | 8388607 PASSED! +1 | 16777215 PASSED! +1 | 33554431 PASSED! +1 | 67108863 PASSED! +1 | 134217727 PASSED! +1 | 268435455 PASSED! +1 | 536870911 PASSED! +1 | 1073741823 PASSED! +1 | 2147483647 PASSED! +1 | 4294967295 PASSED! +1 | 8589934591 PASSED! +3 | 8589934592 PASSED! +3 | 8589934594 PASSED! +3 | 8589934598 PASSED! +3 | 8589934606 PASSED! +3 | 8589934622 PASSED! +3 | 8589934654 PASSED! +3 | 8589934718 PASSED! +3 | 8589934846 PASSED! +3 | 8589935102 PASSED! +3 | 8589935614 PASSED! +3 | 8589936638 PASSED! +3 | 8589938686 PASSED! +3 | 8589942782 PASSED! +3 | 8589950974 PASSED! +3 | 8589967358 PASSED! +3 | 8590000126 PASSED! +3 | 8590065662 PASSED! +3 | 8590196734 PASSED! +3 | 8590458878 PASSED! +3 | 8590983166 PASSED! +3 | 8592031742 PASSED! +3 | 8594128894 PASSED! +3 | 8598323198 PASSED! +3 | 8606711806 PASSED! +3 | 8623489022 PASSED! +3 | 8657043454 PASSED! +3 | 8724152318 PASSED! +3 | 8858370046 PASSED! +3 | 9126805502 PASSED! +3 | 9663676414 PASSED! +3 | 10737418238 PASSED! +3 | 12884901886 PASSED! +3 | 17179869182 PASSED! +7 | 17179869183 PASSED! +7 | 17179869185 PASSED! +7 | 17179869189 PASSED! +7 | 17179869197 PASSED! +7 | 17179869213 PASSED! +7 | 17179869245 PASSED! +7 | 17179869309 PASSED! +7 | 17179869437 PASSED! +7 | 17179869693 PASSED! +7 | 17179870205 PASSED! +7 | 17179871229 PASSED! +7 | 17179873277 PASSED! +7 | 17179877373 PASSED! +7 | 17179885565 PASSED! +7 | 17179901949 PASSED! +7 | 17179934717 PASSED! +7 | 17180000253 PASSED! +7 | 17180131325 PASSED! +7 | 17180393469 PASSED! +7 | 17180917757 PASSED! +7 | 17181966333 PASSED! +7 | 17184063485 PASSED! +7 | 17188257789 PASSED! +7 | 17196646397 PASSED! +7 | 17213423613 PASSED! +7 | 17246978045 PASSED! +7 | 17314086909 PASSED! +7 | 17448304637 PASSED! +7 | 17716740093 PASSED! +7 | 18253611005 PASSED! +7 | 19327352829 PASSED! +7 | 21474836477 PASSED! +7 | 25769803773 PASSED! +15 | 25769803774 PASSED! +15 | 25769803776 PASSED! +15 | 25769803780 PASSED! +15 | 25769803788 PASSED! +15 | 25769803804 PASSED! +15 | 25769803836 PASSED! +15 | 25769803900 PASSED! +15 | 25769804028 PASSED! +15 | 25769804284 PASSED! +15 | 25769804796 PASSED! +15 | 25769805820 PASSED! +15 | 25769807868 PASSED! +15 | 25769811964 PASSED! +15 | 25769820156 PASSED! +15 | 25769836540 PASSED! +15 | 25769869308 PASSED! +15 | 25769934844 PASSED! +15 | 25770065916 PASSED! +15 | 25770328060 PASSED! +15 | 25770852348 PASSED! +15 | 25771900924 PASSED! +15 | 25773998076 PASSED! +15 | 25778192380 PASSED! +15 | 25786580988 PASSED! +15 | 25803358204 PASSED! +15 | 25836912636 PASSED! +15 | 25904021500 PASSED! +15 | 26038239228 PASSED! +15 | 26306674684 PASSED! +15 | 26843545596 PASSED! +15 | 27917287420 PASSED! +15 | 30064771068 PASSED! +15 | 34359738364 PASSED! +31 | 34359738365 PASSED! +31 | 34359738367 PASSED! +31 | 34359738371 PASSED! +31 | 34359738379 PASSED! +31 | 34359738395 PASSED! +31 | 34359738427 PASSED! +31 | 34359738491 PASSED! +31 | 34359738619 PASSED! +31 | 34359738875 PASSED! +31 | 34359739387 PASSED! +31 | 34359740411 PASSED! +31 | 34359742459 PASSED! +31 | 34359746555 PASSED! +31 | 34359754747 PASSED! +31 | 34359771131 PASSED! +31 | 34359803899 PASSED! +31 | 34359869435 PASSED! +31 | 34360000507 PASSED! +31 | 34360262651 PASSED! +31 | 34360786939 PASSED! +31 | 34361835515 PASSED! +31 | 34363932667 PASSED! +31 | 34368126971 PASSED! +31 | 34376515579 PASSED! +31 | 34393292795 PASSED! +31 | 34426847227 PASSED! +31 | 34493956091 PASSED! +31 | 34628173819 PASSED! +31 | 34896609275 PASSED! +31 | 35433480187 PASSED! +31 | 36507222011 PASSED! +31 | 38654705659 PASSED! +31 | 42949672955 PASSED! +63 | 42949672956 PASSED! +63 | 42949672958 PASSED! +63 | 42949672962 PASSED! +63 | 42949672970 PASSED! +63 | 42949672986 PASSED! +63 | 42949673018 PASSED! +63 | 42949673082 PASSED! +63 | 42949673210 PASSED! +63 | 42949673466 PASSED! +63 | 42949673978 PASSED! +63 | 42949675002 PASSED! +63 | 42949677050 PASSED! +63 | 42949681146 PASSED! +63 | 42949689338 PASSED! +63 | 42949705722 PASSED! +63 | 42949738490 PASSED! +63 | 42949804026 PASSED! +63 | 42949935098 PASSED! +63 | 42950197242 PASSED! +63 | 42950721530 PASSED! +63 | 42951770106 PASSED! +63 | 42953867258 PASSED! +63 | 42958061562 PASSED! +63 | 42966450170 PASSED! +63 | 42983227386 PASSED! +63 | 43016781818 PASSED! +63 | 43083890682 PASSED! +63 | 43218108410 PASSED! +63 | 43486543866 PASSED! +63 | 44023414778 PASSED! +63 | 45097156602 PASSED! +63 | 47244640250 PASSED! +63 | 51539607546 PASSED! +127 | 51539607547 PASSED! +127 | 51539607549 PASSED! +127 | 51539607553 PASSED! +127 | 51539607561 PASSED! +127 | 51539607577 PASSED! +127 | 51539607609 PASSED! +127 | 51539607673 PASSED! +127 | 51539607801 PASSED! +127 | 51539608057 PASSED! +127 | 51539608569 PASSED! +127 | 51539609593 PASSED! +127 | 51539611641 PASSED! +127 | 51539615737 PASSED! +127 | 51539623929 PASSED! +127 | 51539640313 PASSED! +127 | 51539673081 PASSED! +127 | 51539738617 PASSED! +127 | 51539869689 PASSED! +127 | 51540131833 PASSED! +127 | 51540656121 PASSED! +127 | 51541704697 PASSED! +127 | 51543801849 PASSED! +127 | 51547996153 PASSED! +127 | 51556384761 PASSED! +127 | 51573161977 PASSED! +127 | 51606716409 PASSED! +127 | 51673825273 PASSED! +127 | 51808043001 PASSED! +127 | 52076478457 PASSED! +127 | 52613349369 PASSED! +127 | 53687091193 PASSED! +127 | 55834574841 PASSED! +127 | 60129542137 PASSED! +255 | 60129542138 PASSED! +255 | 60129542140 PASSED! +255 | 60129542144 PASSED! +255 | 60129542152 PASSED! +255 | 60129542168 PASSED! +255 | 60129542200 PASSED! +255 | 60129542264 PASSED! +255 | 60129542392 PASSED! +255 | 60129542648 PASSED! +255 | 60129543160 PASSED! +255 | 60129544184 PASSED! +255 | 60129546232 PASSED! +255 | 60129550328 PASSED! +255 | 60129558520 PASSED! +255 | 60129574904 PASSED! +255 | 60129607672 PASSED! +255 | 60129673208 PASSED! +255 | 60129804280 PASSED! +255 | 60130066424 PASSED! +255 | 60130590712 PASSED! +255 | 60131639288 PASSED! +255 | 60133736440 PASSED! +255 | 60137930744 PASSED! +255 | 60146319352 PASSED! +255 | 60163096568 PASSED! +255 | 60196651000 PASSED! +255 | 60263759864 PASSED! +255 | 60397977592 PASSED! +255 | 60666413048 PASSED! +255 | 61203283960 PASSED! +255 | 62277025784 PASSED! +255 | 64424509432 PASSED! +255 | 68719476728 PASSED! +511 | 68719476729 PASSED! +511 | 68719476731 PASSED! +511 | 68719476735 PASSED! +511 | 68719476743 PASSED! +511 | 68719476759 PASSED! +511 | 68719476791 PASSED! +511 | 68719476855 PASSED! +511 | 68719476983 PASSED! +511 | 68719477239 PASSED! +511 | 68719477751 PASSED! +511 | 68719478775 PASSED! +511 | 68719480823 PASSED! +511 | 68719484919 PASSED! +511 | 68719493111 PASSED! +511 | 68719509495 PASSED! +511 | 68719542263 PASSED! +511 | 68719607799 PASSED! +511 | 68719738871 PASSED! +511 | 68720001015 PASSED! +511 | 68720525303 PASSED! +511 | 68721573879 PASSED! +511 | 68723671031 PASSED! +511 | 68727865335 PASSED! +511 | 68736253943 PASSED! +511 | 68753031159 PASSED! +511 | 68786585591 PASSED! +511 | 68853694455 PASSED! +511 | 68987912183 PASSED! +511 | 69256347639 PASSED! +511 | 69793218551 PASSED! +511 | 70866960375 PASSED! +511 | 73014444023 PASSED! +511 | 77309411319 PASSED! +1023 | 77309411320 PASSED! +1023 | 77309411322 PASSED! +1023 | 77309411326 PASSED! +1023 | 77309411334 PASSED! +1023 | 77309411350 PASSED! +1023 | 77309411382 PASSED! +1023 | 77309411446 PASSED! +1023 | 77309411574 PASSED! +1023 | 77309411830 PASSED! +1023 | 77309412342 PASSED! +1023 | 77309413366 PASSED! +1023 | 77309415414 PASSED! +1023 | 77309419510 PASSED! +1023 | 77309427702 PASSED! +1023 | 77309444086 PASSED! +1023 | 77309476854 PASSED! +1023 | 77309542390 PASSED! +1023 | 77309673462 PASSED! +1023 | 77309935606 PASSED! +1023 | 77310459894 PASSED! +1023 | 77311508470 PASSED! +1023 | 77313605622 PASSED! +1023 | 77317799926 PASSED! +1023 | 77326188534 PASSED! +1023 | 77342965750 PASSED! +1023 | 77376520182 PASSED! +1023 | 77443629046 PASSED! +1023 | 77577846774 PASSED! +1023 | 77846282230 PASSED! +1023 | 78383153142 PASSED! +1023 | 79456894966 PASSED! +1023 | 81604378614 PASSED! +1023 | 85899345910 PASSED! +2047 | 85899345911 PASSED! +2047 | 85899345913 PASSED! +2047 | 85899345917 PASSED! +2047 | 85899345925 PASSED! +2047 | 85899345941 PASSED! +2047 | 85899345973 PASSED! +2047 | 85899346037 PASSED! +2047 | 85899346165 PASSED! +2047 | 85899346421 PASSED! +2047 | 85899346933 PASSED! +2047 | 85899347957 PASSED! +2047 | 85899350005 PASSED! +2047 | 85899354101 PASSED! +2047 | 85899362293 PASSED! +2047 | 85899378677 PASSED! +2047 | 85899411445 PASSED! +2047 | 85899476981 PASSED! +2047 | 85899608053 PASSED! +2047 | 85899870197 PASSED! +2047 | 85900394485 PASSED! +2047 | 85901443061 PASSED! +2047 | 85903540213 PASSED! +2047 | 85907734517 PASSED! +2047 | 85916123125 PASSED! +2047 | 85932900341 PASSED! +2047 | 85966454773 PASSED! +2047 | 86033563637 PASSED! +2047 | 86167781365 PASSED! +2047 | 86436216821 PASSED! +2047 | 86973087733 PASSED! +2047 | 88046829557 PASSED! +2047 | 90194313205 PASSED! +2047 | 94489280501 PASSED! +4095 | 94489280502 PASSED! +4095 | 94489280504 PASSED! +4095 | 94489280508 PASSED! +4095 | 94489280516 PASSED! +4095 | 94489280532 PASSED! +4095 | 94489280564 PASSED! +4095 | 94489280628 PASSED! +4095 | 94489280756 PASSED! +4095 | 94489281012 PASSED! +4095 | 94489281524 PASSED! +4095 | 94489282548 PASSED! +4095 | 94489284596 PASSED! +4095 | 94489288692 PASSED! +4095 | 94489296884 PASSED! +4095 | 94489313268 PASSED! +4095 | 94489346036 PASSED! +4095 | 94489411572 PASSED! +4095 | 94489542644 PASSED! +4095 | 94489804788 PASSED! +4095 | 94490329076 PASSED! +4095 | 94491377652 PASSED! +4095 | 94493474804 PASSED! +4095 | 94497669108 PASSED! +4095 | 94506057716 PASSED! +4095 | 94522834932 PASSED! +4095 | 94556389364 PASSED! +4095 | 94623498228 PASSED! +4095 | 94757715956 PASSED! +4095 | 95026151412 PASSED! +4095 | 95563022324 PASSED! +4095 | 96636764148 PASSED! +4095 | 98784247796 PASSED! +4095 | 103079215092 PASSED! +8191 | 103079215093 PASSED! +8191 | 103079215095 PASSED! +8191 | 103079215099 PASSED! +8191 | 103079215107 PASSED! +8191 | 103079215123 PASSED! +8191 | 103079215155 PASSED! +8191 | 103079215219 PASSED! +8191 | 103079215347 PASSED! +8191 | 103079215603 PASSED! +8191 | 103079216115 PASSED! +8191 | 103079217139 PASSED! +8191 | 103079219187 PASSED! +8191 | 103079223283 PASSED! +8191 | 103079231475 PASSED! +8191 | 103079247859 PASSED! +8191 | 103079280627 PASSED! +8191 | 103079346163 PASSED! +8191 | 103079477235 PASSED! +8191 | 103079739379 PASSED! +8191 | 103080263667 PASSED! +8191 | 103081312243 PASSED! +8191 | 103083409395 PASSED! +8191 | 103087603699 PASSED! +8191 | 103095992307 PASSED! +8191 | 103112769523 PASSED! +8191 | 103146323955 PASSED! +8191 | 103213432819 PASSED! +8191 | 103347650547 PASSED! +8191 | 103616086003 PASSED! +8191 | 104152956915 PASSED! +8191 | 105226698739 PASSED! +8191 | 107374182387 PASSED! +8191 | 111669149683 PASSED! +16383 | 111669149684 PASSED! +16383 | 111669149686 PASSED! +16383 | 111669149690 PASSED! +16383 | 111669149698 PASSED! +16383 | 111669149714 PASSED! +16383 | 111669149746 PASSED! +16383 | 111669149810 PASSED! +16383 | 111669149938 PASSED! +16383 | 111669150194 PASSED! +16383 | 111669150706 PASSED! +16383 | 111669151730 PASSED! +16383 | 111669153778 PASSED! +16383 | 111669157874 PASSED! +16383 | 111669166066 PASSED! +16383 | 111669182450 PASSED! +16383 | 111669215218 PASSED! +16383 | 111669280754 PASSED! +16383 | 111669411826 PASSED! +16383 | 111669673970 PASSED! +16383 | 111670198258 PASSED! +16383 | 111671246834 PASSED! +16383 | 111673343986 PASSED! +16383 | 111677538290 PASSED! +16383 | 111685926898 PASSED! +16383 | 111702704114 PASSED! +16383 | 111736258546 PASSED! +16383 | 111803367410 PASSED! +16383 | 111937585138 PASSED! +16383 | 112206020594 PASSED! +16383 | 112742891506 PASSED! +16383 | 113816633330 PASSED! +16383 | 115964116978 PASSED! +16383 | 120259084274 PASSED! +32767 | 120259084275 PASSED! +32767 | 120259084277 PASSED! +32767 | 120259084281 PASSED! +32767 | 120259084289 PASSED! +32767 | 120259084305 PASSED! +32767 | 120259084337 PASSED! +32767 | 120259084401 PASSED! +32767 | 120259084529 PASSED! +32767 | 120259084785 PASSED! +32767 | 120259085297 PASSED! +32767 | 120259086321 PASSED! +32767 | 120259088369 PASSED! +32767 | 120259092465 PASSED! +32767 | 120259100657 PASSED! +32767 | 120259117041 PASSED! +32767 | 120259149809 PASSED! +32767 | 120259215345 PASSED! +32767 | 120259346417 PASSED! +32767 | 120259608561 PASSED! +32767 | 120260132849 PASSED! +32767 | 120261181425 PASSED! +32767 | 120263278577 PASSED! +32767 | 120267472881 PASSED! +32767 | 120275861489 PASSED! +32767 | 120292638705 PASSED! +32767 | 120326193137 PASSED! +32767 | 120393302001 PASSED! +32767 | 120527519729 PASSED! +32767 | 120795955185 PASSED! +32767 | 121332826097 PASSED! +32767 | 122406567921 PASSED! +32767 | 124554051569 PASSED! +32767 | 128849018865 PASSED! +65535 | 128849018866 PASSED! +65535 | 128849018868 PASSED! +65535 | 128849018872 PASSED! +65535 | 128849018880 PASSED! +65535 | 128849018896 PASSED! +65535 | 128849018928 PASSED! +65535 | 128849018992 PASSED! +65535 | 128849019120 PASSED! +65535 | 128849019376 PASSED! +65535 | 128849019888 PASSED! +65535 | 128849020912 PASSED! +65535 | 128849022960 PASSED! +65535 | 128849027056 PASSED! +65535 | 128849035248 PASSED! +65535 | 128849051632 PASSED! +65535 | 128849084400 PASSED! +65535 | 128849149936 PASSED! +65535 | 128849281008 PASSED! +65535 | 128849543152 PASSED! +65535 | 128850067440 PASSED! +65535 | 128851116016 PASSED! +65535 | 128853213168 PASSED! +65535 | 128857407472 PASSED! +65535 | 128865796080 PASSED! +65535 | 128882573296 PASSED! +65535 | 128916127728 PASSED! +65535 | 128983236592 PASSED! +65535 | 129117454320 PASSED! +65535 | 129385889776 PASSED! +65535 | 129922760688 PASSED! +65535 | 130996502512 PASSED! +65535 | 133143986160 PASSED! +65535 | 137438953456 PASSED! +131071 | 137438953457 PASSED! +131071 | 137438953459 PASSED! +131071 | 137438953463 PASSED! +131071 | 137438953471 PASSED! +131071 | 137438953487 PASSED! +131071 | 137438953519 PASSED! +131071 | 137438953583 PASSED! +131071 | 137438953711 PASSED! +131071 | 137438953967 PASSED! +131071 | 137438954479 PASSED! +131071 | 137438955503 PASSED! +131071 | 137438957551 PASSED! +131071 | 137438961647 PASSED! +131071 | 137438969839 PASSED! +131071 | 137438986223 PASSED! +131071 | 137439018991 PASSED! +131071 | 137439084527 PASSED! +131071 | 137439215599 PASSED! +131071 | 137439477743 PASSED! +131071 | 137440002031 PASSED! +131071 | 137441050607 PASSED! +131071 | 137443147759 PASSED! +131071 | 137447342063 PASSED! +131071 | 137455730671 PASSED! +131071 | 137472507887 PASSED! +131071 | 137506062319 PASSED! +131071 | 137573171183 PASSED! +131071 | 137707388911 PASSED! +131071 | 137975824367 PASSED! +131071 | 138512695279 PASSED! +131071 | 139586437103 PASSED! +131071 | 141733920751 PASSED! +131071 | 146028888047 PASSED! +262143 | 146028888048 PASSED! +262143 | 146028888050 PASSED! +262143 | 146028888054 PASSED! +262143 | 146028888062 PASSED! +262143 | 146028888078 PASSED! +262143 | 146028888110 PASSED! +262143 | 146028888174 PASSED! +262143 | 146028888302 PASSED! +262143 | 146028888558 PASSED! +262143 | 146028889070 PASSED! +262143 | 146028890094 PASSED! +262143 | 146028892142 PASSED! +262143 | 146028896238 PASSED! +262143 | 146028904430 PASSED! +262143 | 146028920814 PASSED! +262143 | 146028953582 PASSED! +262143 | 146029019118 PASSED! +262143 | 146029150190 PASSED! +262143 | 146029412334 PASSED! +262143 | 146029936622 PASSED! +262143 | 146030985198 PASSED! +262143 | 146033082350 PASSED! +262143 | 146037276654 PASSED! +262143 | 146045665262 PASSED! +262143 | 146062442478 PASSED! +262143 | 146095996910 PASSED! +262143 | 146163105774 PASSED! +262143 | 146297323502 PASSED! +262143 | 146565758958 PASSED! +262143 | 147102629870 PASSED! +262143 | 148176371694 PASSED! +262143 | 150323855342 PASSED! +262143 | 154618822638 PASSED! +524287 | 154618822639 PASSED! +524287 | 154618822641 PASSED! +524287 | 154618822645 PASSED! +524287 | 154618822653 PASSED! +524287 | 154618822669 PASSED! +524287 | 154618822701 PASSED! +524287 | 154618822765 PASSED! +524287 | 154618822893 PASSED! +524287 | 154618823149 PASSED! +524287 | 154618823661 PASSED! +524287 | 154618824685 PASSED! +524287 | 154618826733 PASSED! +524287 | 154618830829 PASSED! +524287 | 154618839021 PASSED! +524287 | 154618855405 PASSED! +524287 | 154618888173 PASSED! +524287 | 154618953709 PASSED! +524287 | 154619084781 PASSED! +524287 | 154619346925 PASSED! +524287 | 154619871213 PASSED! +524287 | 154620919789 PASSED! +524287 | 154623016941 PASSED! +524287 | 154627211245 PASSED! +524287 | 154635599853 PASSED! +524287 | 154652377069 PASSED! +524287 | 154685931501 PASSED! +524287 | 154753040365 PASSED! +524287 | 154887258093 PASSED! +524287 | 155155693549 PASSED! +524287 | 155692564461 PASSED! +524287 | 156766306285 PASSED! +524287 | 158913789933 PASSED! +524287 | 163208757229 PASSED! +1048575 | 163208757230 PASSED! +1048575 | 163208757232 PASSED! +1048575 | 163208757236 PASSED! +1048575 | 163208757244 PASSED! +1048575 | 163208757260 PASSED! +1048575 | 163208757292 PASSED! +1048575 | 163208757356 PASSED! +1048575 | 163208757484 PASSED! +1048575 | 163208757740 PASSED! +1048575 | 163208758252 PASSED! +1048575 | 163208759276 PASSED! +1048575 | 163208761324 PASSED! +1048575 | 163208765420 PASSED! +1048575 | 163208773612 PASSED! +1048575 | 163208789996 PASSED! +1048575 | 163208822764 PASSED! +1048575 | 163208888300 PASSED! +1048575 | 163209019372 PASSED! +1048575 | 163209281516 PASSED! +1048575 | 163209805804 PASSED! +1048575 | 163210854380 PASSED! +1048575 | 163212951532 PASSED! +1048575 | 163217145836 PASSED! +1048575 | 163225534444 PASSED! +1048575 | 163242311660 PASSED! +1048575 | 163275866092 PASSED! +1048575 | 163342974956 PASSED! +1048575 | 163477192684 PASSED! +1048575 | 163745628140 PASSED! +1048575 | 164282499052 PASSED! +1048575 | 165356240876 PASSED! +1048575 | 167503724524 PASSED! +1048575 | 171798691820 PASSED! +2097151 | 171798691821 PASSED! +2097151 | 171798691823 PASSED! +2097151 | 171798691827 PASSED! +2097151 | 171798691835 PASSED! +2097151 | 171798691851 PASSED! +2097151 | 171798691883 PASSED! +2097151 | 171798691947 PASSED! +2097151 | 171798692075 PASSED! +2097151 | 171798692331 PASSED! +2097151 | 171798692843 PASSED! +2097151 | 171798693867 PASSED! +2097151 | 171798695915 PASSED! +2097151 | 171798700011 PASSED! +2097151 | 171798708203 PASSED! +2097151 | 171798724587 PASSED! +2097151 | 171798757355 PASSED! +2097151 | 171798822891 PASSED! +2097151 | 171798953963 PASSED! +2097151 | 171799216107 PASSED! +2097151 | 171799740395 PASSED! +2097151 | 171800788971 PASSED! +2097151 | 171802886123 PASSED! +2097151 | 171807080427 PASSED! +2097151 | 171815469035 PASSED! +2097151 | 171832246251 PASSED! +2097151 | 171865800683 PASSED! +2097151 | 171932909547 PASSED! +2097151 | 172067127275 PASSED! +2097151 | 172335562731 PASSED! +2097151 | 172872433643 PASSED! +2097151 | 173946175467 PASSED! +2097151 | 176093659115 PASSED! +2097151 | 180388626411 PASSED! +4194303 | 180388626412 PASSED! +4194303 | 180388626414 PASSED! +4194303 | 180388626418 PASSED! +4194303 | 180388626426 PASSED! +4194303 | 180388626442 PASSED! +4194303 | 180388626474 PASSED! +4194303 | 180388626538 PASSED! +4194303 | 180388626666 PASSED! +4194303 | 180388626922 PASSED! +4194303 | 180388627434 PASSED! +4194303 | 180388628458 PASSED! +4194303 | 180388630506 PASSED! +4194303 | 180388634602 PASSED! +4194303 | 180388642794 PASSED! +4194303 | 180388659178 PASSED! +4194303 | 180388691946 PASSED! +4194303 | 180388757482 PASSED! +4194303 | 180388888554 PASSED! +4194303 | 180389150698 PASSED! +4194303 | 180389674986 PASSED! +4194303 | 180390723562 PASSED! +4194303 | 180392820714 PASSED! +4194303 | 180397015018 PASSED! +4194303 | 180405403626 PASSED! +4194303 | 180422180842 PASSED! +4194303 | 180455735274 PASSED! +4194303 | 180522844138 PASSED! +4194303 | 180657061866 PASSED! +4194303 | 180925497322 PASSED! +4194303 | 181462368234 PASSED! +4194303 | 182536110058 PASSED! +4194303 | 184683593706 PASSED! +4194303 | 188978561002 PASSED! +8388607 | 188978561003 PASSED! +8388607 | 188978561005 PASSED! +8388607 | 188978561009 PASSED! +8388607 | 188978561017 PASSED! +8388607 | 188978561033 PASSED! +8388607 | 188978561065 PASSED! +8388607 | 188978561129 PASSED! +8388607 | 188978561257 PASSED! +8388607 | 188978561513 PASSED! +8388607 | 188978562025 PASSED! +8388607 | 188978563049 PASSED! +8388607 | 188978565097 PASSED! +8388607 | 188978569193 PASSED! +8388607 | 188978577385 PASSED! +8388607 | 188978593769 PASSED! +8388607 | 188978626537 PASSED! +8388607 | 188978692073 PASSED! +8388607 | 188978823145 PASSED! +8388607 | 188979085289 PASSED! +8388607 | 188979609577 PASSED! +8388607 | 188980658153 PASSED! +8388607 | 188982755305 PASSED! +8388607 | 188986949609 PASSED! +8388607 | 188995338217 PASSED! +8388607 | 189012115433 PASSED! +8388607 | 189045669865 PASSED! +8388607 | 189112778729 PASSED! +8388607 | 189246996457 PASSED! +8388607 | 189515431913 PASSED! +8388607 | 190052302825 PASSED! +8388607 | 191126044649 PASSED! +8388607 | 193273528297 PASSED! +8388607 | 197568495593 PASSED! +16777215 | 197568495594 PASSED! +16777215 | 197568495596 PASSED! +16777215 | 197568495600 PASSED! +16777215 | 197568495608 PASSED! +16777215 | 197568495624 PASSED! +16777215 | 197568495656 PASSED! +16777215 | 197568495720 PASSED! +16777215 | 197568495848 PASSED! +16777215 | 197568496104 PASSED! +16777215 | 197568496616 PASSED! +16777215 | 197568497640 PASSED! +16777215 | 197568499688 PASSED! +16777215 | 197568503784 PASSED! +16777215 | 197568511976 PASSED! +16777215 | 197568528360 PASSED! +16777215 | 197568561128 PASSED! +16777215 | 197568626664 PASSED! +16777215 | 197568757736 PASSED! +16777215 | 197569019880 PASSED! +16777215 | 197569544168 PASSED! +16777215 | 197570592744 PASSED! +16777215 | 197572689896 PASSED! +16777215 | 197576884200 PASSED! +16777215 | 197585272808 PASSED! +16777215 | 197602050024 PASSED! +16777215 | 197635604456 PASSED! +16777215 | 197702713320 PASSED! +16777215 | 197836931048 PASSED! +16777215 | 198105366504 PASSED! +16777215 | 198642237416 PASSED! +16777215 | 199715979240 PASSED! +16777215 | 201863462888 PASSED! +16777215 | 206158430184 PASSED! +33554431 | 206158430185 PASSED! +33554431 | 206158430187 PASSED! +33554431 | 206158430191 PASSED! +33554431 | 206158430199 PASSED! +33554431 | 206158430215 PASSED! +33554431 | 206158430247 PASSED! +33554431 | 206158430311 PASSED! +33554431 | 206158430439 PASSED! +33554431 | 206158430695 PASSED! +33554431 | 206158431207 PASSED! +33554431 | 206158432231 PASSED! +33554431 | 206158434279 PASSED! +33554431 | 206158438375 PASSED! +33554431 | 206158446567 PASSED! +33554431 | 206158462951 PASSED! +33554431 | 206158495719 PASSED! +33554431 | 206158561255 PASSED! +33554431 | 206158692327 PASSED! +33554431 | 206158954471 PASSED! +33554431 | 206159478759 PASSED! +33554431 | 206160527335 PASSED! +33554431 | 206162624487 PASSED! +33554431 | 206166818791 PASSED! +33554431 | 206175207399 PASSED! +33554431 | 206191984615 PASSED! +33554431 | 206225539047 PASSED! +33554431 | 206292647911 PASSED! +33554431 | 206426865639 PASSED! +33554431 | 206695301095 PASSED! +33554431 | 207232172007 PASSED! +33554431 | 208305913831 PASSED! +33554431 | 210453397479 PASSED! +33554431 | 214748364775 PASSED! +67108863 | 214748364776 PASSED! +67108863 | 214748364778 PASSED! +67108863 | 214748364782 PASSED! +67108863 | 214748364790 PASSED! +67108863 | 214748364806 PASSED! +67108863 | 214748364838 PASSED! +67108863 | 214748364902 PASSED! +67108863 | 214748365030 PASSED! +67108863 | 214748365286 PASSED! +67108863 | 214748365798 PASSED! +67108863 | 214748366822 PASSED! +67108863 | 214748368870 PASSED! +67108863 | 214748372966 PASSED! +67108863 | 214748381158 PASSED! +67108863 | 214748397542 PASSED! +67108863 | 214748430310 PASSED! +67108863 | 214748495846 PASSED! +67108863 | 214748626918 PASSED! +67108863 | 214748889062 PASSED! +67108863 | 214749413350 PASSED! +67108863 | 214750461926 PASSED! +67108863 | 214752559078 PASSED! +67108863 | 214756753382 PASSED! +67108863 | 214765141990 PASSED! +67108863 | 214781919206 PASSED! +67108863 | 214815473638 PASSED! +67108863 | 214882582502 PASSED! +67108863 | 215016800230 PASSED! +67108863 | 215285235686 PASSED! +67108863 | 215822106598 PASSED! +67108863 | 216895848422 PASSED! +67108863 | 219043332070 PASSED! +67108863 | 223338299366 PASSED! +134217727 | 223338299367 PASSED! +134217727 | 223338299369 PASSED! +134217727 | 223338299373 PASSED! +134217727 | 223338299381 PASSED! +134217727 | 223338299397 PASSED! +134217727 | 223338299429 PASSED! +134217727 | 223338299493 PASSED! +134217727 | 223338299621 PASSED! +134217727 | 223338299877 PASSED! +134217727 | 223338300389 PASSED! +134217727 | 223338301413 PASSED! +134217727 | 223338303461 PASSED! +134217727 | 223338307557 PASSED! +134217727 | 223338315749 PASSED! +134217727 | 223338332133 PASSED! +134217727 | 223338364901 PASSED! +134217727 | 223338430437 PASSED! +134217727 | 223338561509 PASSED! +134217727 | 223338823653 PASSED! +134217727 | 223339347941 PASSED! +134217727 | 223340396517 PASSED! +134217727 | 223342493669 PASSED! +134217727 | 223346687973 PASSED! +134217727 | 223355076581 PASSED! +134217727 | 223371853797 PASSED! +134217727 | 223405408229 PASSED! +134217727 | 223472517093 PASSED! +134217727 | 223606734821 PASSED! +134217727 | 223875170277 PASSED! +134217727 | 224412041189 PASSED! +134217727 | 225485783013 PASSED! +134217727 | 227633266661 PASSED! +134217727 | 231928233957 PASSED! +268435455 | 231928233958 PASSED! +268435455 | 231928233960 PASSED! +268435455 | 231928233964 PASSED! +268435455 | 231928233972 PASSED! +268435455 | 231928233988 PASSED! +268435455 | 231928234020 PASSED! +268435455 | 231928234084 PASSED! +268435455 | 231928234212 PASSED! +268435455 | 231928234468 PASSED! +268435455 | 231928234980 PASSED! +268435455 | 231928236004 PASSED! +268435455 | 231928238052 PASSED! +268435455 | 231928242148 PASSED! +268435455 | 231928250340 PASSED! +268435455 | 231928266724 PASSED! +268435455 | 231928299492 PASSED! +268435455 | 231928365028 PASSED! +268435455 | 231928496100 PASSED! +268435455 | 231928758244 PASSED! +268435455 | 231929282532 PASSED! +268435455 | 231930331108 PASSED! +268435455 | 231932428260 PASSED! +268435455 | 231936622564 PASSED! +268435455 | 231945011172 PASSED! +268435455 | 231961788388 PASSED! +268435455 | 231995342820 PASSED! +268435455 | 232062451684 PASSED! +268435455 | 232196669412 PASSED! +268435455 | 232465104868 PASSED! +268435455 | 233001975780 PASSED! +268435455 | 234075717604 PASSED! +268435455 | 236223201252 PASSED! +268435455 | 240518168548 PASSED! +536870911 | 240518168549 PASSED! +536870911 | 240518168551 PASSED! +536870911 | 240518168555 PASSED! +536870911 | 240518168563 PASSED! +536870911 | 240518168579 PASSED! +536870911 | 240518168611 PASSED! +536870911 | 240518168675 PASSED! +536870911 | 240518168803 PASSED! +536870911 | 240518169059 PASSED! +536870911 | 240518169571 PASSED! +536870911 | 240518170595 PASSED! +536870911 | 240518172643 PASSED! +536870911 | 240518176739 PASSED! +536870911 | 240518184931 PASSED! +536870911 | 240518201315 PASSED! +536870911 | 240518234083 PASSED! +536870911 | 240518299619 PASSED! +536870911 | 240518430691 PASSED! +536870911 | 240518692835 PASSED! +536870911 | 240519217123 PASSED! +536870911 | 240520265699 PASSED! +536870911 | 240522362851 PASSED! +536870911 | 240526557155 PASSED! +536870911 | 240534945763 PASSED! +536870911 | 240551722979 PASSED! +536870911 | 240585277411 PASSED! +536870911 | 240652386275 PASSED! +536870911 | 240786604003 PASSED! +536870911 | 241055039459 PASSED! +536870911 | 241591910371 PASSED! +536870911 | 242665652195 PASSED! +536870911 | 244813135843 PASSED! +536870911 | 249108103139 PASSED! +1073741823 | 249108103140 PASSED! +1073741823 | 249108103142 PASSED! +1073741823 | 249108103146 PASSED! +1073741823 | 249108103154 PASSED! +1073741823 | 249108103170 PASSED! +1073741823 | 249108103202 PASSED! +1073741823 | 249108103266 PASSED! +1073741823 | 249108103394 PASSED! +1073741823 | 249108103650 PASSED! +1073741823 | 249108104162 PASSED! +1073741823 | 249108105186 PASSED! +1073741823 | 249108107234 PASSED! +1073741823 | 249108111330 PASSED! +1073741823 | 249108119522 PASSED! +1073741823 | 249108135906 PASSED! +1073741823 | 249108168674 PASSED! +1073741823 | 249108234210 PASSED! +1073741823 | 249108365282 PASSED! +1073741823 | 249108627426 PASSED! +1073741823 | 249109151714 PASSED! +1073741823 | 249110200290 PASSED! +1073741823 | 249112297442 PASSED! +1073741823 | 249116491746 PASSED! +1073741823 | 249124880354 PASSED! +1073741823 | 249141657570 PASSED! +1073741823 | 249175212002 PASSED! +1073741823 | 249242320866 PASSED! +1073741823 | 249376538594 PASSED! +1073741823 | 249644974050 PASSED! +1073741823 | 250181844962 PASSED! +1073741823 | 251255586786 PASSED! +1073741823 | 253403070434 PASSED! +1073741823 | 257698037730 PASSED! +2147483647 | 257698037731 PASSED! +2147483647 | 257698037733 PASSED! +2147483647 | 257698037737 PASSED! +2147483647 | 257698037745 PASSED! +2147483647 | 257698037761 PASSED! +2147483647 | 257698037793 PASSED! +2147483647 | 257698037857 PASSED! +2147483647 | 257698037985 PASSED! +2147483647 | 257698038241 PASSED! +2147483647 | 257698038753 PASSED! +2147483647 | 257698039777 PASSED! +2147483647 | 257698041825 PASSED! +2147483647 | 257698045921 PASSED! +2147483647 | 257698054113 PASSED! +2147483647 | 257698070497 PASSED! +2147483647 | 257698103265 PASSED! +2147483647 | 257698168801 PASSED! +2147483647 | 257698299873 PASSED! +2147483647 | 257698562017 PASSED! +2147483647 | 257699086305 PASSED! +2147483647 | 257700134881 PASSED! +2147483647 | 257702232033 PASSED! +2147483647 | 257706426337 PASSED! +2147483647 | 257714814945 PASSED! +2147483647 | 257731592161 PASSED! +2147483647 | 257765146593 PASSED! +2147483647 | 257832255457 PASSED! +2147483647 | 257966473185 PASSED! +2147483647 | 258234908641 PASSED! +2147483647 | 258771779553 PASSED! +2147483647 | 259845521377 PASSED! +2147483647 | 261993005025 PASSED! +2147483647 | 266287972321 PASSED! +4294967295 | 266287972322 PASSED! +4294967295 | 266287972324 PASSED! +4294967295 | 266287972328 PASSED! +4294967295 | 266287972336 PASSED! +4294967295 | 266287972352 PASSED! +4294967295 | 266287972384 PASSED! +4294967295 | 266287972448 PASSED! +4294967295 | 266287972576 PASSED! +4294967295 | 266287972832 PASSED! +4294967295 | 266287973344 PASSED! +4294967295 | 266287974368 PASSED! +4294967295 | 266287976416 PASSED! +4294967295 | 266287980512 PASSED! +4294967295 | 266287988704 PASSED! +4294967295 | 266288005088 PASSED! +4294967295 | 266288037856 PASSED! +4294967295 | 266288103392 PASSED! +4294967295 | 266288234464 PASSED! +4294967295 | 266288496608 PASSED! +4294967295 | 266289020896 PASSED! +4294967295 | 266290069472 PASSED! +4294967295 | 266292166624 PASSED! +4294967295 | 266296360928 PASSED! +4294967295 | 266304749536 PASSED! +4294967295 | 266321526752 PASSED! +4294967295 | 266355081184 PASSED! +4294967295 | 266422190048 PASSED! +4294967295 | 266556407776 PASSED! +4294967295 | 266824843232 PASSED! +4294967295 | 267361714144 PASSED! +4294967295 | 268435455968 PASSED! +4294967295 | 270582939616 PASSED! +4294967295 | 274877906912 PASSED! +8589934591 | 274877906913 PASSED! +8589934591 | 274877906915 PASSED! +8589934591 | 274877906919 PASSED! +8589934591 | 274877906927 PASSED! +8589934591 | 274877906943 PASSED! +8589934591 | 274877906975 PASSED! +8589934591 | 274877907039 PASSED! +8589934591 | 274877907167 PASSED! +8589934591 | 274877907423 PASSED! +8589934591 | 274877907935 PASSED! +8589934591 | 274877908959 PASSED! +8589934591 | 274877911007 PASSED! +8589934591 | 274877915103 PASSED! +8589934591 | 274877923295 PASSED! +8589934591 | 274877939679 PASSED! +8589934591 | 274877972447 PASSED! +8589934591 | 274878037983 PASSED! +8589934591 | 274878169055 PASSED! +8589934591 | 274878431199 PASSED! +8589934591 | 274878955487 PASSED! +8589934591 | 274880004063 PASSED! +8589934591 | 274882101215 PASSED! +8589934591 | 274886295519 PASSED! +8589934591 | 274894684127 PASSED! +8589934591 | 274911461343 PASSED! +8589934591 | 274945015775 PASSED! +8589934591 | 275012124639 PASSED! +8589934591 | 275146342367 PASSED! +8589934591 | 275414777823 PASSED! +8589934591 | 275951648735 PASSED! +8589934591 | 277025390559 PASSED! +8589934591 | 279172874207 PASSED! +8589934591 | 283467841503 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..2ae1ffadbfcf70b23c2037c703f8f6e880c640e3 GIT binary patch literal 3476 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 CBJ8jL literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_2/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/Test.as new file mode 100644 index 000000000..8ff6aba8b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/Test.as @@ -0,0 +1,217 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_10_3"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + var shiftexp = 0; + var addexp = 0; + + for ( shiftpow = 0; shiftpow < 33; shiftpow++ ) { + shiftexp += Math.pow( 2, shiftpow ); + + for ( addpow = 0; addpow < 33; addpow++ ) { + addexp += Math.pow(2, addpow); + + array[item++] = Assert.expectEq( + shiftexp + " ^ " + addexp, + Xor( shiftexp, addexp ), + shiftexp ^ addexp ); + } + } + + return ( array ); +} +function ToInteger( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( n != n ) { + return 0; + } + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) { + return n; + } + return ( sign * Math.floor(Math.abs(n)) ); +} +function ToInt32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = (sign * Math.floor( Math.abs(n) )) % Math.pow(2,32); + n = ( n >= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + + } + + return r; +} +function And( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" && ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + return ToInt32Decimal(result); +} +function Xor( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( (bs.charAt(bit) == "1" && ba.charAt(bit) == "0") || + (bs.charAt(bit) == "0" && ba.charAt(bit) == "1") + ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} +function Or( s, a ) { + s = ToInt32( s ); + a = ToInt32( a ); + + var bs = ToInt32BitString( s ); + var ba = ToInt32BitString( a ); + + var result = ""; + + for ( var bit = 0; bit < bs.length; bit++ ) { + if ( bs.charAt(bit) == "1" || ba.charAt(bit) == "1" ) { + result += "1"; + } else { + result += "0"; + } + } + + return ToInt32Decimal(result); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/output.txt new file mode 100644 index 000000000..6ee478765 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/output.txt @@ -0,0 +1,1089 @@ +1 ^ 1 PASSED! +1 ^ 3 PASSED! +1 ^ 7 PASSED! +1 ^ 15 PASSED! +1 ^ 31 PASSED! +1 ^ 63 PASSED! +1 ^ 127 PASSED! +1 ^ 255 PASSED! +1 ^ 511 PASSED! +1 ^ 1023 PASSED! +1 ^ 2047 PASSED! +1 ^ 4095 PASSED! +1 ^ 8191 PASSED! +1 ^ 16383 PASSED! +1 ^ 32767 PASSED! +1 ^ 65535 PASSED! +1 ^ 131071 PASSED! +1 ^ 262143 PASSED! +1 ^ 524287 PASSED! +1 ^ 1048575 PASSED! +1 ^ 2097151 PASSED! +1 ^ 4194303 PASSED! +1 ^ 8388607 PASSED! +1 ^ 16777215 PASSED! +1 ^ 33554431 PASSED! +1 ^ 67108863 PASSED! +1 ^ 134217727 PASSED! +1 ^ 268435455 PASSED! +1 ^ 536870911 PASSED! +1 ^ 1073741823 PASSED! +1 ^ 2147483647 PASSED! +1 ^ 4294967295 PASSED! +1 ^ 8589934591 PASSED! +3 ^ 8589934592 PASSED! +3 ^ 8589934594 PASSED! +3 ^ 8589934598 PASSED! +3 ^ 8589934606 PASSED! +3 ^ 8589934622 PASSED! +3 ^ 8589934654 PASSED! +3 ^ 8589934718 PASSED! +3 ^ 8589934846 PASSED! +3 ^ 8589935102 PASSED! +3 ^ 8589935614 PASSED! +3 ^ 8589936638 PASSED! +3 ^ 8589938686 PASSED! +3 ^ 8589942782 PASSED! +3 ^ 8589950974 PASSED! +3 ^ 8589967358 PASSED! +3 ^ 8590000126 PASSED! +3 ^ 8590065662 PASSED! +3 ^ 8590196734 PASSED! +3 ^ 8590458878 PASSED! +3 ^ 8590983166 PASSED! +3 ^ 8592031742 PASSED! +3 ^ 8594128894 PASSED! +3 ^ 8598323198 PASSED! +3 ^ 8606711806 PASSED! +3 ^ 8623489022 PASSED! +3 ^ 8657043454 PASSED! +3 ^ 8724152318 PASSED! +3 ^ 8858370046 PASSED! +3 ^ 9126805502 PASSED! +3 ^ 9663676414 PASSED! +3 ^ 10737418238 PASSED! +3 ^ 12884901886 PASSED! +3 ^ 17179869182 PASSED! +7 ^ 17179869183 PASSED! +7 ^ 17179869185 PASSED! +7 ^ 17179869189 PASSED! +7 ^ 17179869197 PASSED! +7 ^ 17179869213 PASSED! +7 ^ 17179869245 PASSED! +7 ^ 17179869309 PASSED! +7 ^ 17179869437 PASSED! +7 ^ 17179869693 PASSED! +7 ^ 17179870205 PASSED! +7 ^ 17179871229 PASSED! +7 ^ 17179873277 PASSED! +7 ^ 17179877373 PASSED! +7 ^ 17179885565 PASSED! +7 ^ 17179901949 PASSED! +7 ^ 17179934717 PASSED! +7 ^ 17180000253 PASSED! +7 ^ 17180131325 PASSED! +7 ^ 17180393469 PASSED! +7 ^ 17180917757 PASSED! +7 ^ 17181966333 PASSED! +7 ^ 17184063485 PASSED! +7 ^ 17188257789 PASSED! +7 ^ 17196646397 PASSED! +7 ^ 17213423613 PASSED! +7 ^ 17246978045 PASSED! +7 ^ 17314086909 PASSED! +7 ^ 17448304637 PASSED! +7 ^ 17716740093 PASSED! +7 ^ 18253611005 PASSED! +7 ^ 19327352829 PASSED! +7 ^ 21474836477 PASSED! +7 ^ 25769803773 PASSED! +15 ^ 25769803774 PASSED! +15 ^ 25769803776 PASSED! +15 ^ 25769803780 PASSED! +15 ^ 25769803788 PASSED! +15 ^ 25769803804 PASSED! +15 ^ 25769803836 PASSED! +15 ^ 25769803900 PASSED! +15 ^ 25769804028 PASSED! +15 ^ 25769804284 PASSED! +15 ^ 25769804796 PASSED! +15 ^ 25769805820 PASSED! +15 ^ 25769807868 PASSED! +15 ^ 25769811964 PASSED! +15 ^ 25769820156 PASSED! +15 ^ 25769836540 PASSED! +15 ^ 25769869308 PASSED! +15 ^ 25769934844 PASSED! +15 ^ 25770065916 PASSED! +15 ^ 25770328060 PASSED! +15 ^ 25770852348 PASSED! +15 ^ 25771900924 PASSED! +15 ^ 25773998076 PASSED! +15 ^ 25778192380 PASSED! +15 ^ 25786580988 PASSED! +15 ^ 25803358204 PASSED! +15 ^ 25836912636 PASSED! +15 ^ 25904021500 PASSED! +15 ^ 26038239228 PASSED! +15 ^ 26306674684 PASSED! +15 ^ 26843545596 PASSED! +15 ^ 27917287420 PASSED! +15 ^ 30064771068 PASSED! +15 ^ 34359738364 PASSED! +31 ^ 34359738365 PASSED! +31 ^ 34359738367 PASSED! +31 ^ 34359738371 PASSED! +31 ^ 34359738379 PASSED! +31 ^ 34359738395 PASSED! +31 ^ 34359738427 PASSED! +31 ^ 34359738491 PASSED! +31 ^ 34359738619 PASSED! +31 ^ 34359738875 PASSED! +31 ^ 34359739387 PASSED! +31 ^ 34359740411 PASSED! +31 ^ 34359742459 PASSED! +31 ^ 34359746555 PASSED! +31 ^ 34359754747 PASSED! +31 ^ 34359771131 PASSED! +31 ^ 34359803899 PASSED! +31 ^ 34359869435 PASSED! +31 ^ 34360000507 PASSED! +31 ^ 34360262651 PASSED! +31 ^ 34360786939 PASSED! +31 ^ 34361835515 PASSED! +31 ^ 34363932667 PASSED! +31 ^ 34368126971 PASSED! +31 ^ 34376515579 PASSED! +31 ^ 34393292795 PASSED! +31 ^ 34426847227 PASSED! +31 ^ 34493956091 PASSED! +31 ^ 34628173819 PASSED! +31 ^ 34896609275 PASSED! +31 ^ 35433480187 PASSED! +31 ^ 36507222011 PASSED! +31 ^ 38654705659 PASSED! +31 ^ 42949672955 PASSED! +63 ^ 42949672956 PASSED! +63 ^ 42949672958 PASSED! +63 ^ 42949672962 PASSED! +63 ^ 42949672970 PASSED! +63 ^ 42949672986 PASSED! +63 ^ 42949673018 PASSED! +63 ^ 42949673082 PASSED! +63 ^ 42949673210 PASSED! +63 ^ 42949673466 PASSED! +63 ^ 42949673978 PASSED! +63 ^ 42949675002 PASSED! +63 ^ 42949677050 PASSED! +63 ^ 42949681146 PASSED! +63 ^ 42949689338 PASSED! +63 ^ 42949705722 PASSED! +63 ^ 42949738490 PASSED! +63 ^ 42949804026 PASSED! +63 ^ 42949935098 PASSED! +63 ^ 42950197242 PASSED! +63 ^ 42950721530 PASSED! +63 ^ 42951770106 PASSED! +63 ^ 42953867258 PASSED! +63 ^ 42958061562 PASSED! +63 ^ 42966450170 PASSED! +63 ^ 42983227386 PASSED! +63 ^ 43016781818 PASSED! +63 ^ 43083890682 PASSED! +63 ^ 43218108410 PASSED! +63 ^ 43486543866 PASSED! +63 ^ 44023414778 PASSED! +63 ^ 45097156602 PASSED! +63 ^ 47244640250 PASSED! +63 ^ 51539607546 PASSED! +127 ^ 51539607547 PASSED! +127 ^ 51539607549 PASSED! +127 ^ 51539607553 PASSED! +127 ^ 51539607561 PASSED! +127 ^ 51539607577 PASSED! +127 ^ 51539607609 PASSED! +127 ^ 51539607673 PASSED! +127 ^ 51539607801 PASSED! +127 ^ 51539608057 PASSED! +127 ^ 51539608569 PASSED! +127 ^ 51539609593 PASSED! +127 ^ 51539611641 PASSED! +127 ^ 51539615737 PASSED! +127 ^ 51539623929 PASSED! +127 ^ 51539640313 PASSED! +127 ^ 51539673081 PASSED! +127 ^ 51539738617 PASSED! +127 ^ 51539869689 PASSED! +127 ^ 51540131833 PASSED! +127 ^ 51540656121 PASSED! +127 ^ 51541704697 PASSED! +127 ^ 51543801849 PASSED! +127 ^ 51547996153 PASSED! +127 ^ 51556384761 PASSED! +127 ^ 51573161977 PASSED! +127 ^ 51606716409 PASSED! +127 ^ 51673825273 PASSED! +127 ^ 51808043001 PASSED! +127 ^ 52076478457 PASSED! +127 ^ 52613349369 PASSED! +127 ^ 53687091193 PASSED! +127 ^ 55834574841 PASSED! +127 ^ 60129542137 PASSED! +255 ^ 60129542138 PASSED! +255 ^ 60129542140 PASSED! +255 ^ 60129542144 PASSED! +255 ^ 60129542152 PASSED! +255 ^ 60129542168 PASSED! +255 ^ 60129542200 PASSED! +255 ^ 60129542264 PASSED! +255 ^ 60129542392 PASSED! +255 ^ 60129542648 PASSED! +255 ^ 60129543160 PASSED! +255 ^ 60129544184 PASSED! +255 ^ 60129546232 PASSED! +255 ^ 60129550328 PASSED! +255 ^ 60129558520 PASSED! +255 ^ 60129574904 PASSED! +255 ^ 60129607672 PASSED! +255 ^ 60129673208 PASSED! +255 ^ 60129804280 PASSED! +255 ^ 60130066424 PASSED! +255 ^ 60130590712 PASSED! +255 ^ 60131639288 PASSED! +255 ^ 60133736440 PASSED! +255 ^ 60137930744 PASSED! +255 ^ 60146319352 PASSED! +255 ^ 60163096568 PASSED! +255 ^ 60196651000 PASSED! +255 ^ 60263759864 PASSED! +255 ^ 60397977592 PASSED! +255 ^ 60666413048 PASSED! +255 ^ 61203283960 PASSED! +255 ^ 62277025784 PASSED! +255 ^ 64424509432 PASSED! +255 ^ 68719476728 PASSED! +511 ^ 68719476729 PASSED! +511 ^ 68719476731 PASSED! +511 ^ 68719476735 PASSED! +511 ^ 68719476743 PASSED! +511 ^ 68719476759 PASSED! +511 ^ 68719476791 PASSED! +511 ^ 68719476855 PASSED! +511 ^ 68719476983 PASSED! +511 ^ 68719477239 PASSED! +511 ^ 68719477751 PASSED! +511 ^ 68719478775 PASSED! +511 ^ 68719480823 PASSED! +511 ^ 68719484919 PASSED! +511 ^ 68719493111 PASSED! +511 ^ 68719509495 PASSED! +511 ^ 68719542263 PASSED! +511 ^ 68719607799 PASSED! +511 ^ 68719738871 PASSED! +511 ^ 68720001015 PASSED! +511 ^ 68720525303 PASSED! +511 ^ 68721573879 PASSED! +511 ^ 68723671031 PASSED! +511 ^ 68727865335 PASSED! +511 ^ 68736253943 PASSED! +511 ^ 68753031159 PASSED! +511 ^ 68786585591 PASSED! +511 ^ 68853694455 PASSED! +511 ^ 68987912183 PASSED! +511 ^ 69256347639 PASSED! +511 ^ 69793218551 PASSED! +511 ^ 70866960375 PASSED! +511 ^ 73014444023 PASSED! +511 ^ 77309411319 PASSED! +1023 ^ 77309411320 PASSED! +1023 ^ 77309411322 PASSED! +1023 ^ 77309411326 PASSED! +1023 ^ 77309411334 PASSED! +1023 ^ 77309411350 PASSED! +1023 ^ 77309411382 PASSED! +1023 ^ 77309411446 PASSED! +1023 ^ 77309411574 PASSED! +1023 ^ 77309411830 PASSED! +1023 ^ 77309412342 PASSED! +1023 ^ 77309413366 PASSED! +1023 ^ 77309415414 PASSED! +1023 ^ 77309419510 PASSED! +1023 ^ 77309427702 PASSED! +1023 ^ 77309444086 PASSED! +1023 ^ 77309476854 PASSED! +1023 ^ 77309542390 PASSED! +1023 ^ 77309673462 PASSED! +1023 ^ 77309935606 PASSED! +1023 ^ 77310459894 PASSED! +1023 ^ 77311508470 PASSED! +1023 ^ 77313605622 PASSED! +1023 ^ 77317799926 PASSED! +1023 ^ 77326188534 PASSED! +1023 ^ 77342965750 PASSED! +1023 ^ 77376520182 PASSED! +1023 ^ 77443629046 PASSED! +1023 ^ 77577846774 PASSED! +1023 ^ 77846282230 PASSED! +1023 ^ 78383153142 PASSED! +1023 ^ 79456894966 PASSED! +1023 ^ 81604378614 PASSED! +1023 ^ 85899345910 PASSED! +2047 ^ 85899345911 PASSED! +2047 ^ 85899345913 PASSED! +2047 ^ 85899345917 PASSED! +2047 ^ 85899345925 PASSED! +2047 ^ 85899345941 PASSED! +2047 ^ 85899345973 PASSED! +2047 ^ 85899346037 PASSED! +2047 ^ 85899346165 PASSED! +2047 ^ 85899346421 PASSED! +2047 ^ 85899346933 PASSED! +2047 ^ 85899347957 PASSED! +2047 ^ 85899350005 PASSED! +2047 ^ 85899354101 PASSED! +2047 ^ 85899362293 PASSED! +2047 ^ 85899378677 PASSED! +2047 ^ 85899411445 PASSED! +2047 ^ 85899476981 PASSED! +2047 ^ 85899608053 PASSED! +2047 ^ 85899870197 PASSED! +2047 ^ 85900394485 PASSED! +2047 ^ 85901443061 PASSED! +2047 ^ 85903540213 PASSED! +2047 ^ 85907734517 PASSED! +2047 ^ 85916123125 PASSED! +2047 ^ 85932900341 PASSED! +2047 ^ 85966454773 PASSED! +2047 ^ 86033563637 PASSED! +2047 ^ 86167781365 PASSED! +2047 ^ 86436216821 PASSED! +2047 ^ 86973087733 PASSED! +2047 ^ 88046829557 PASSED! +2047 ^ 90194313205 PASSED! +2047 ^ 94489280501 PASSED! +4095 ^ 94489280502 PASSED! +4095 ^ 94489280504 PASSED! +4095 ^ 94489280508 PASSED! +4095 ^ 94489280516 PASSED! +4095 ^ 94489280532 PASSED! +4095 ^ 94489280564 PASSED! +4095 ^ 94489280628 PASSED! +4095 ^ 94489280756 PASSED! +4095 ^ 94489281012 PASSED! +4095 ^ 94489281524 PASSED! +4095 ^ 94489282548 PASSED! +4095 ^ 94489284596 PASSED! +4095 ^ 94489288692 PASSED! +4095 ^ 94489296884 PASSED! +4095 ^ 94489313268 PASSED! +4095 ^ 94489346036 PASSED! +4095 ^ 94489411572 PASSED! +4095 ^ 94489542644 PASSED! +4095 ^ 94489804788 PASSED! +4095 ^ 94490329076 PASSED! +4095 ^ 94491377652 PASSED! +4095 ^ 94493474804 PASSED! +4095 ^ 94497669108 PASSED! +4095 ^ 94506057716 PASSED! +4095 ^ 94522834932 PASSED! +4095 ^ 94556389364 PASSED! +4095 ^ 94623498228 PASSED! +4095 ^ 94757715956 PASSED! +4095 ^ 95026151412 PASSED! +4095 ^ 95563022324 PASSED! +4095 ^ 96636764148 PASSED! +4095 ^ 98784247796 PASSED! +4095 ^ 103079215092 PASSED! +8191 ^ 103079215093 PASSED! +8191 ^ 103079215095 PASSED! +8191 ^ 103079215099 PASSED! +8191 ^ 103079215107 PASSED! +8191 ^ 103079215123 PASSED! +8191 ^ 103079215155 PASSED! +8191 ^ 103079215219 PASSED! +8191 ^ 103079215347 PASSED! +8191 ^ 103079215603 PASSED! +8191 ^ 103079216115 PASSED! +8191 ^ 103079217139 PASSED! +8191 ^ 103079219187 PASSED! +8191 ^ 103079223283 PASSED! +8191 ^ 103079231475 PASSED! +8191 ^ 103079247859 PASSED! +8191 ^ 103079280627 PASSED! +8191 ^ 103079346163 PASSED! +8191 ^ 103079477235 PASSED! +8191 ^ 103079739379 PASSED! +8191 ^ 103080263667 PASSED! +8191 ^ 103081312243 PASSED! +8191 ^ 103083409395 PASSED! +8191 ^ 103087603699 PASSED! +8191 ^ 103095992307 PASSED! +8191 ^ 103112769523 PASSED! +8191 ^ 103146323955 PASSED! +8191 ^ 103213432819 PASSED! +8191 ^ 103347650547 PASSED! +8191 ^ 103616086003 PASSED! +8191 ^ 104152956915 PASSED! +8191 ^ 105226698739 PASSED! +8191 ^ 107374182387 PASSED! +8191 ^ 111669149683 PASSED! +16383 ^ 111669149684 PASSED! +16383 ^ 111669149686 PASSED! +16383 ^ 111669149690 PASSED! +16383 ^ 111669149698 PASSED! +16383 ^ 111669149714 PASSED! +16383 ^ 111669149746 PASSED! +16383 ^ 111669149810 PASSED! +16383 ^ 111669149938 PASSED! +16383 ^ 111669150194 PASSED! +16383 ^ 111669150706 PASSED! +16383 ^ 111669151730 PASSED! +16383 ^ 111669153778 PASSED! +16383 ^ 111669157874 PASSED! +16383 ^ 111669166066 PASSED! +16383 ^ 111669182450 PASSED! +16383 ^ 111669215218 PASSED! +16383 ^ 111669280754 PASSED! +16383 ^ 111669411826 PASSED! +16383 ^ 111669673970 PASSED! +16383 ^ 111670198258 PASSED! +16383 ^ 111671246834 PASSED! +16383 ^ 111673343986 PASSED! +16383 ^ 111677538290 PASSED! +16383 ^ 111685926898 PASSED! +16383 ^ 111702704114 PASSED! +16383 ^ 111736258546 PASSED! +16383 ^ 111803367410 PASSED! +16383 ^ 111937585138 PASSED! +16383 ^ 112206020594 PASSED! +16383 ^ 112742891506 PASSED! +16383 ^ 113816633330 PASSED! +16383 ^ 115964116978 PASSED! +16383 ^ 120259084274 PASSED! +32767 ^ 120259084275 PASSED! +32767 ^ 120259084277 PASSED! +32767 ^ 120259084281 PASSED! +32767 ^ 120259084289 PASSED! +32767 ^ 120259084305 PASSED! +32767 ^ 120259084337 PASSED! +32767 ^ 120259084401 PASSED! +32767 ^ 120259084529 PASSED! +32767 ^ 120259084785 PASSED! +32767 ^ 120259085297 PASSED! +32767 ^ 120259086321 PASSED! +32767 ^ 120259088369 PASSED! +32767 ^ 120259092465 PASSED! +32767 ^ 120259100657 PASSED! +32767 ^ 120259117041 PASSED! +32767 ^ 120259149809 PASSED! +32767 ^ 120259215345 PASSED! +32767 ^ 120259346417 PASSED! +32767 ^ 120259608561 PASSED! +32767 ^ 120260132849 PASSED! +32767 ^ 120261181425 PASSED! +32767 ^ 120263278577 PASSED! +32767 ^ 120267472881 PASSED! +32767 ^ 120275861489 PASSED! +32767 ^ 120292638705 PASSED! +32767 ^ 120326193137 PASSED! +32767 ^ 120393302001 PASSED! +32767 ^ 120527519729 PASSED! +32767 ^ 120795955185 PASSED! +32767 ^ 121332826097 PASSED! +32767 ^ 122406567921 PASSED! +32767 ^ 124554051569 PASSED! +32767 ^ 128849018865 PASSED! +65535 ^ 128849018866 PASSED! +65535 ^ 128849018868 PASSED! +65535 ^ 128849018872 PASSED! +65535 ^ 128849018880 PASSED! +65535 ^ 128849018896 PASSED! +65535 ^ 128849018928 PASSED! +65535 ^ 128849018992 PASSED! +65535 ^ 128849019120 PASSED! +65535 ^ 128849019376 PASSED! +65535 ^ 128849019888 PASSED! +65535 ^ 128849020912 PASSED! +65535 ^ 128849022960 PASSED! +65535 ^ 128849027056 PASSED! +65535 ^ 128849035248 PASSED! +65535 ^ 128849051632 PASSED! +65535 ^ 128849084400 PASSED! +65535 ^ 128849149936 PASSED! +65535 ^ 128849281008 PASSED! +65535 ^ 128849543152 PASSED! +65535 ^ 128850067440 PASSED! +65535 ^ 128851116016 PASSED! +65535 ^ 128853213168 PASSED! +65535 ^ 128857407472 PASSED! +65535 ^ 128865796080 PASSED! +65535 ^ 128882573296 PASSED! +65535 ^ 128916127728 PASSED! +65535 ^ 128983236592 PASSED! +65535 ^ 129117454320 PASSED! +65535 ^ 129385889776 PASSED! +65535 ^ 129922760688 PASSED! +65535 ^ 130996502512 PASSED! +65535 ^ 133143986160 PASSED! +65535 ^ 137438953456 PASSED! +131071 ^ 137438953457 PASSED! +131071 ^ 137438953459 PASSED! +131071 ^ 137438953463 PASSED! +131071 ^ 137438953471 PASSED! +131071 ^ 137438953487 PASSED! +131071 ^ 137438953519 PASSED! +131071 ^ 137438953583 PASSED! +131071 ^ 137438953711 PASSED! +131071 ^ 137438953967 PASSED! +131071 ^ 137438954479 PASSED! +131071 ^ 137438955503 PASSED! +131071 ^ 137438957551 PASSED! +131071 ^ 137438961647 PASSED! +131071 ^ 137438969839 PASSED! +131071 ^ 137438986223 PASSED! +131071 ^ 137439018991 PASSED! +131071 ^ 137439084527 PASSED! +131071 ^ 137439215599 PASSED! +131071 ^ 137439477743 PASSED! +131071 ^ 137440002031 PASSED! +131071 ^ 137441050607 PASSED! +131071 ^ 137443147759 PASSED! +131071 ^ 137447342063 PASSED! +131071 ^ 137455730671 PASSED! +131071 ^ 137472507887 PASSED! +131071 ^ 137506062319 PASSED! +131071 ^ 137573171183 PASSED! +131071 ^ 137707388911 PASSED! +131071 ^ 137975824367 PASSED! +131071 ^ 138512695279 PASSED! +131071 ^ 139586437103 PASSED! +131071 ^ 141733920751 PASSED! +131071 ^ 146028888047 PASSED! +262143 ^ 146028888048 PASSED! +262143 ^ 146028888050 PASSED! +262143 ^ 146028888054 PASSED! +262143 ^ 146028888062 PASSED! +262143 ^ 146028888078 PASSED! +262143 ^ 146028888110 PASSED! +262143 ^ 146028888174 PASSED! +262143 ^ 146028888302 PASSED! +262143 ^ 146028888558 PASSED! +262143 ^ 146028889070 PASSED! +262143 ^ 146028890094 PASSED! +262143 ^ 146028892142 PASSED! +262143 ^ 146028896238 PASSED! +262143 ^ 146028904430 PASSED! +262143 ^ 146028920814 PASSED! +262143 ^ 146028953582 PASSED! +262143 ^ 146029019118 PASSED! +262143 ^ 146029150190 PASSED! +262143 ^ 146029412334 PASSED! +262143 ^ 146029936622 PASSED! +262143 ^ 146030985198 PASSED! +262143 ^ 146033082350 PASSED! +262143 ^ 146037276654 PASSED! +262143 ^ 146045665262 PASSED! +262143 ^ 146062442478 PASSED! +262143 ^ 146095996910 PASSED! +262143 ^ 146163105774 PASSED! +262143 ^ 146297323502 PASSED! +262143 ^ 146565758958 PASSED! +262143 ^ 147102629870 PASSED! +262143 ^ 148176371694 PASSED! +262143 ^ 150323855342 PASSED! +262143 ^ 154618822638 PASSED! +524287 ^ 154618822639 PASSED! +524287 ^ 154618822641 PASSED! +524287 ^ 154618822645 PASSED! +524287 ^ 154618822653 PASSED! +524287 ^ 154618822669 PASSED! +524287 ^ 154618822701 PASSED! +524287 ^ 154618822765 PASSED! +524287 ^ 154618822893 PASSED! +524287 ^ 154618823149 PASSED! +524287 ^ 154618823661 PASSED! +524287 ^ 154618824685 PASSED! +524287 ^ 154618826733 PASSED! +524287 ^ 154618830829 PASSED! +524287 ^ 154618839021 PASSED! +524287 ^ 154618855405 PASSED! +524287 ^ 154618888173 PASSED! +524287 ^ 154618953709 PASSED! +524287 ^ 154619084781 PASSED! +524287 ^ 154619346925 PASSED! +524287 ^ 154619871213 PASSED! +524287 ^ 154620919789 PASSED! +524287 ^ 154623016941 PASSED! +524287 ^ 154627211245 PASSED! +524287 ^ 154635599853 PASSED! +524287 ^ 154652377069 PASSED! +524287 ^ 154685931501 PASSED! +524287 ^ 154753040365 PASSED! +524287 ^ 154887258093 PASSED! +524287 ^ 155155693549 PASSED! +524287 ^ 155692564461 PASSED! +524287 ^ 156766306285 PASSED! +524287 ^ 158913789933 PASSED! +524287 ^ 163208757229 PASSED! +1048575 ^ 163208757230 PASSED! +1048575 ^ 163208757232 PASSED! +1048575 ^ 163208757236 PASSED! +1048575 ^ 163208757244 PASSED! +1048575 ^ 163208757260 PASSED! +1048575 ^ 163208757292 PASSED! +1048575 ^ 163208757356 PASSED! +1048575 ^ 163208757484 PASSED! +1048575 ^ 163208757740 PASSED! +1048575 ^ 163208758252 PASSED! +1048575 ^ 163208759276 PASSED! +1048575 ^ 163208761324 PASSED! +1048575 ^ 163208765420 PASSED! +1048575 ^ 163208773612 PASSED! +1048575 ^ 163208789996 PASSED! +1048575 ^ 163208822764 PASSED! +1048575 ^ 163208888300 PASSED! +1048575 ^ 163209019372 PASSED! +1048575 ^ 163209281516 PASSED! +1048575 ^ 163209805804 PASSED! +1048575 ^ 163210854380 PASSED! +1048575 ^ 163212951532 PASSED! +1048575 ^ 163217145836 PASSED! +1048575 ^ 163225534444 PASSED! +1048575 ^ 163242311660 PASSED! +1048575 ^ 163275866092 PASSED! +1048575 ^ 163342974956 PASSED! +1048575 ^ 163477192684 PASSED! +1048575 ^ 163745628140 PASSED! +1048575 ^ 164282499052 PASSED! +1048575 ^ 165356240876 PASSED! +1048575 ^ 167503724524 PASSED! +1048575 ^ 171798691820 PASSED! +2097151 ^ 171798691821 PASSED! +2097151 ^ 171798691823 PASSED! +2097151 ^ 171798691827 PASSED! +2097151 ^ 171798691835 PASSED! +2097151 ^ 171798691851 PASSED! +2097151 ^ 171798691883 PASSED! +2097151 ^ 171798691947 PASSED! +2097151 ^ 171798692075 PASSED! +2097151 ^ 171798692331 PASSED! +2097151 ^ 171798692843 PASSED! +2097151 ^ 171798693867 PASSED! +2097151 ^ 171798695915 PASSED! +2097151 ^ 171798700011 PASSED! +2097151 ^ 171798708203 PASSED! +2097151 ^ 171798724587 PASSED! +2097151 ^ 171798757355 PASSED! +2097151 ^ 171798822891 PASSED! +2097151 ^ 171798953963 PASSED! +2097151 ^ 171799216107 PASSED! +2097151 ^ 171799740395 PASSED! +2097151 ^ 171800788971 PASSED! +2097151 ^ 171802886123 PASSED! +2097151 ^ 171807080427 PASSED! +2097151 ^ 171815469035 PASSED! +2097151 ^ 171832246251 PASSED! +2097151 ^ 171865800683 PASSED! +2097151 ^ 171932909547 PASSED! +2097151 ^ 172067127275 PASSED! +2097151 ^ 172335562731 PASSED! +2097151 ^ 172872433643 PASSED! +2097151 ^ 173946175467 PASSED! +2097151 ^ 176093659115 PASSED! +2097151 ^ 180388626411 PASSED! +4194303 ^ 180388626412 PASSED! +4194303 ^ 180388626414 PASSED! +4194303 ^ 180388626418 PASSED! +4194303 ^ 180388626426 PASSED! +4194303 ^ 180388626442 PASSED! +4194303 ^ 180388626474 PASSED! +4194303 ^ 180388626538 PASSED! +4194303 ^ 180388626666 PASSED! +4194303 ^ 180388626922 PASSED! +4194303 ^ 180388627434 PASSED! +4194303 ^ 180388628458 PASSED! +4194303 ^ 180388630506 PASSED! +4194303 ^ 180388634602 PASSED! +4194303 ^ 180388642794 PASSED! +4194303 ^ 180388659178 PASSED! +4194303 ^ 180388691946 PASSED! +4194303 ^ 180388757482 PASSED! +4194303 ^ 180388888554 PASSED! +4194303 ^ 180389150698 PASSED! +4194303 ^ 180389674986 PASSED! +4194303 ^ 180390723562 PASSED! +4194303 ^ 180392820714 PASSED! +4194303 ^ 180397015018 PASSED! +4194303 ^ 180405403626 PASSED! +4194303 ^ 180422180842 PASSED! +4194303 ^ 180455735274 PASSED! +4194303 ^ 180522844138 PASSED! +4194303 ^ 180657061866 PASSED! +4194303 ^ 180925497322 PASSED! +4194303 ^ 181462368234 PASSED! +4194303 ^ 182536110058 PASSED! +4194303 ^ 184683593706 PASSED! +4194303 ^ 188978561002 PASSED! +8388607 ^ 188978561003 PASSED! +8388607 ^ 188978561005 PASSED! +8388607 ^ 188978561009 PASSED! +8388607 ^ 188978561017 PASSED! +8388607 ^ 188978561033 PASSED! +8388607 ^ 188978561065 PASSED! +8388607 ^ 188978561129 PASSED! +8388607 ^ 188978561257 PASSED! +8388607 ^ 188978561513 PASSED! +8388607 ^ 188978562025 PASSED! +8388607 ^ 188978563049 PASSED! +8388607 ^ 188978565097 PASSED! +8388607 ^ 188978569193 PASSED! +8388607 ^ 188978577385 PASSED! +8388607 ^ 188978593769 PASSED! +8388607 ^ 188978626537 PASSED! +8388607 ^ 188978692073 PASSED! +8388607 ^ 188978823145 PASSED! +8388607 ^ 188979085289 PASSED! +8388607 ^ 188979609577 PASSED! +8388607 ^ 188980658153 PASSED! +8388607 ^ 188982755305 PASSED! +8388607 ^ 188986949609 PASSED! +8388607 ^ 188995338217 PASSED! +8388607 ^ 189012115433 PASSED! +8388607 ^ 189045669865 PASSED! +8388607 ^ 189112778729 PASSED! +8388607 ^ 189246996457 PASSED! +8388607 ^ 189515431913 PASSED! +8388607 ^ 190052302825 PASSED! +8388607 ^ 191126044649 PASSED! +8388607 ^ 193273528297 PASSED! +8388607 ^ 197568495593 PASSED! +16777215 ^ 197568495594 PASSED! +16777215 ^ 197568495596 PASSED! +16777215 ^ 197568495600 PASSED! +16777215 ^ 197568495608 PASSED! +16777215 ^ 197568495624 PASSED! +16777215 ^ 197568495656 PASSED! +16777215 ^ 197568495720 PASSED! +16777215 ^ 197568495848 PASSED! +16777215 ^ 197568496104 PASSED! +16777215 ^ 197568496616 PASSED! +16777215 ^ 197568497640 PASSED! +16777215 ^ 197568499688 PASSED! +16777215 ^ 197568503784 PASSED! +16777215 ^ 197568511976 PASSED! +16777215 ^ 197568528360 PASSED! +16777215 ^ 197568561128 PASSED! +16777215 ^ 197568626664 PASSED! +16777215 ^ 197568757736 PASSED! +16777215 ^ 197569019880 PASSED! +16777215 ^ 197569544168 PASSED! +16777215 ^ 197570592744 PASSED! +16777215 ^ 197572689896 PASSED! +16777215 ^ 197576884200 PASSED! +16777215 ^ 197585272808 PASSED! +16777215 ^ 197602050024 PASSED! +16777215 ^ 197635604456 PASSED! +16777215 ^ 197702713320 PASSED! +16777215 ^ 197836931048 PASSED! +16777215 ^ 198105366504 PASSED! +16777215 ^ 198642237416 PASSED! +16777215 ^ 199715979240 PASSED! +16777215 ^ 201863462888 PASSED! +16777215 ^ 206158430184 PASSED! +33554431 ^ 206158430185 PASSED! +33554431 ^ 206158430187 PASSED! +33554431 ^ 206158430191 PASSED! +33554431 ^ 206158430199 PASSED! +33554431 ^ 206158430215 PASSED! +33554431 ^ 206158430247 PASSED! +33554431 ^ 206158430311 PASSED! +33554431 ^ 206158430439 PASSED! +33554431 ^ 206158430695 PASSED! +33554431 ^ 206158431207 PASSED! +33554431 ^ 206158432231 PASSED! +33554431 ^ 206158434279 PASSED! +33554431 ^ 206158438375 PASSED! +33554431 ^ 206158446567 PASSED! +33554431 ^ 206158462951 PASSED! +33554431 ^ 206158495719 PASSED! +33554431 ^ 206158561255 PASSED! +33554431 ^ 206158692327 PASSED! +33554431 ^ 206158954471 PASSED! +33554431 ^ 206159478759 PASSED! +33554431 ^ 206160527335 PASSED! +33554431 ^ 206162624487 PASSED! +33554431 ^ 206166818791 PASSED! +33554431 ^ 206175207399 PASSED! +33554431 ^ 206191984615 PASSED! +33554431 ^ 206225539047 PASSED! +33554431 ^ 206292647911 PASSED! +33554431 ^ 206426865639 PASSED! +33554431 ^ 206695301095 PASSED! +33554431 ^ 207232172007 PASSED! +33554431 ^ 208305913831 PASSED! +33554431 ^ 210453397479 PASSED! +33554431 ^ 214748364775 PASSED! +67108863 ^ 214748364776 PASSED! +67108863 ^ 214748364778 PASSED! +67108863 ^ 214748364782 PASSED! +67108863 ^ 214748364790 PASSED! +67108863 ^ 214748364806 PASSED! +67108863 ^ 214748364838 PASSED! +67108863 ^ 214748364902 PASSED! +67108863 ^ 214748365030 PASSED! +67108863 ^ 214748365286 PASSED! +67108863 ^ 214748365798 PASSED! +67108863 ^ 214748366822 PASSED! +67108863 ^ 214748368870 PASSED! +67108863 ^ 214748372966 PASSED! +67108863 ^ 214748381158 PASSED! +67108863 ^ 214748397542 PASSED! +67108863 ^ 214748430310 PASSED! +67108863 ^ 214748495846 PASSED! +67108863 ^ 214748626918 PASSED! +67108863 ^ 214748889062 PASSED! +67108863 ^ 214749413350 PASSED! +67108863 ^ 214750461926 PASSED! +67108863 ^ 214752559078 PASSED! +67108863 ^ 214756753382 PASSED! +67108863 ^ 214765141990 PASSED! +67108863 ^ 214781919206 PASSED! +67108863 ^ 214815473638 PASSED! +67108863 ^ 214882582502 PASSED! +67108863 ^ 215016800230 PASSED! +67108863 ^ 215285235686 PASSED! +67108863 ^ 215822106598 PASSED! +67108863 ^ 216895848422 PASSED! +67108863 ^ 219043332070 PASSED! +67108863 ^ 223338299366 PASSED! +134217727 ^ 223338299367 PASSED! +134217727 ^ 223338299369 PASSED! +134217727 ^ 223338299373 PASSED! +134217727 ^ 223338299381 PASSED! +134217727 ^ 223338299397 PASSED! +134217727 ^ 223338299429 PASSED! +134217727 ^ 223338299493 PASSED! +134217727 ^ 223338299621 PASSED! +134217727 ^ 223338299877 PASSED! +134217727 ^ 223338300389 PASSED! +134217727 ^ 223338301413 PASSED! +134217727 ^ 223338303461 PASSED! +134217727 ^ 223338307557 PASSED! +134217727 ^ 223338315749 PASSED! +134217727 ^ 223338332133 PASSED! +134217727 ^ 223338364901 PASSED! +134217727 ^ 223338430437 PASSED! +134217727 ^ 223338561509 PASSED! +134217727 ^ 223338823653 PASSED! +134217727 ^ 223339347941 PASSED! +134217727 ^ 223340396517 PASSED! +134217727 ^ 223342493669 PASSED! +134217727 ^ 223346687973 PASSED! +134217727 ^ 223355076581 PASSED! +134217727 ^ 223371853797 PASSED! +134217727 ^ 223405408229 PASSED! +134217727 ^ 223472517093 PASSED! +134217727 ^ 223606734821 PASSED! +134217727 ^ 223875170277 PASSED! +134217727 ^ 224412041189 PASSED! +134217727 ^ 225485783013 PASSED! +134217727 ^ 227633266661 PASSED! +134217727 ^ 231928233957 PASSED! +268435455 ^ 231928233958 PASSED! +268435455 ^ 231928233960 PASSED! +268435455 ^ 231928233964 PASSED! +268435455 ^ 231928233972 PASSED! +268435455 ^ 231928233988 PASSED! +268435455 ^ 231928234020 PASSED! +268435455 ^ 231928234084 PASSED! +268435455 ^ 231928234212 PASSED! +268435455 ^ 231928234468 PASSED! +268435455 ^ 231928234980 PASSED! +268435455 ^ 231928236004 PASSED! +268435455 ^ 231928238052 PASSED! +268435455 ^ 231928242148 PASSED! +268435455 ^ 231928250340 PASSED! +268435455 ^ 231928266724 PASSED! +268435455 ^ 231928299492 PASSED! +268435455 ^ 231928365028 PASSED! +268435455 ^ 231928496100 PASSED! +268435455 ^ 231928758244 PASSED! +268435455 ^ 231929282532 PASSED! +268435455 ^ 231930331108 PASSED! +268435455 ^ 231932428260 PASSED! +268435455 ^ 231936622564 PASSED! +268435455 ^ 231945011172 PASSED! +268435455 ^ 231961788388 PASSED! +268435455 ^ 231995342820 PASSED! +268435455 ^ 232062451684 PASSED! +268435455 ^ 232196669412 PASSED! +268435455 ^ 232465104868 PASSED! +268435455 ^ 233001975780 PASSED! +268435455 ^ 234075717604 PASSED! +268435455 ^ 236223201252 PASSED! +268435455 ^ 240518168548 PASSED! +536870911 ^ 240518168549 PASSED! +536870911 ^ 240518168551 PASSED! +536870911 ^ 240518168555 PASSED! +536870911 ^ 240518168563 PASSED! +536870911 ^ 240518168579 PASSED! +536870911 ^ 240518168611 PASSED! +536870911 ^ 240518168675 PASSED! +536870911 ^ 240518168803 PASSED! +536870911 ^ 240518169059 PASSED! +536870911 ^ 240518169571 PASSED! +536870911 ^ 240518170595 PASSED! +536870911 ^ 240518172643 PASSED! +536870911 ^ 240518176739 PASSED! +536870911 ^ 240518184931 PASSED! +536870911 ^ 240518201315 PASSED! +536870911 ^ 240518234083 PASSED! +536870911 ^ 240518299619 PASSED! +536870911 ^ 240518430691 PASSED! +536870911 ^ 240518692835 PASSED! +536870911 ^ 240519217123 PASSED! +536870911 ^ 240520265699 PASSED! +536870911 ^ 240522362851 PASSED! +536870911 ^ 240526557155 PASSED! +536870911 ^ 240534945763 PASSED! +536870911 ^ 240551722979 PASSED! +536870911 ^ 240585277411 PASSED! +536870911 ^ 240652386275 PASSED! +536870911 ^ 240786604003 PASSED! +536870911 ^ 241055039459 PASSED! +536870911 ^ 241591910371 PASSED! +536870911 ^ 242665652195 PASSED! +536870911 ^ 244813135843 PASSED! +536870911 ^ 249108103139 PASSED! +1073741823 ^ 249108103140 PASSED! +1073741823 ^ 249108103142 PASSED! +1073741823 ^ 249108103146 PASSED! +1073741823 ^ 249108103154 PASSED! +1073741823 ^ 249108103170 PASSED! +1073741823 ^ 249108103202 PASSED! +1073741823 ^ 249108103266 PASSED! +1073741823 ^ 249108103394 PASSED! +1073741823 ^ 249108103650 PASSED! +1073741823 ^ 249108104162 PASSED! +1073741823 ^ 249108105186 PASSED! +1073741823 ^ 249108107234 PASSED! +1073741823 ^ 249108111330 PASSED! +1073741823 ^ 249108119522 PASSED! +1073741823 ^ 249108135906 PASSED! +1073741823 ^ 249108168674 PASSED! +1073741823 ^ 249108234210 PASSED! +1073741823 ^ 249108365282 PASSED! +1073741823 ^ 249108627426 PASSED! +1073741823 ^ 249109151714 PASSED! +1073741823 ^ 249110200290 PASSED! +1073741823 ^ 249112297442 PASSED! +1073741823 ^ 249116491746 PASSED! +1073741823 ^ 249124880354 PASSED! +1073741823 ^ 249141657570 PASSED! +1073741823 ^ 249175212002 PASSED! +1073741823 ^ 249242320866 PASSED! +1073741823 ^ 249376538594 PASSED! +1073741823 ^ 249644974050 PASSED! +1073741823 ^ 250181844962 PASSED! +1073741823 ^ 251255586786 PASSED! +1073741823 ^ 253403070434 PASSED! +1073741823 ^ 257698037730 PASSED! +2147483647 ^ 257698037731 PASSED! +2147483647 ^ 257698037733 PASSED! +2147483647 ^ 257698037737 PASSED! +2147483647 ^ 257698037745 PASSED! +2147483647 ^ 257698037761 PASSED! +2147483647 ^ 257698037793 PASSED! +2147483647 ^ 257698037857 PASSED! +2147483647 ^ 257698037985 PASSED! +2147483647 ^ 257698038241 PASSED! +2147483647 ^ 257698038753 PASSED! +2147483647 ^ 257698039777 PASSED! +2147483647 ^ 257698041825 PASSED! +2147483647 ^ 257698045921 PASSED! +2147483647 ^ 257698054113 PASSED! +2147483647 ^ 257698070497 PASSED! +2147483647 ^ 257698103265 PASSED! +2147483647 ^ 257698168801 PASSED! +2147483647 ^ 257698299873 PASSED! +2147483647 ^ 257698562017 PASSED! +2147483647 ^ 257699086305 PASSED! +2147483647 ^ 257700134881 PASSED! +2147483647 ^ 257702232033 PASSED! +2147483647 ^ 257706426337 PASSED! +2147483647 ^ 257714814945 PASSED! +2147483647 ^ 257731592161 PASSED! +2147483647 ^ 257765146593 PASSED! +2147483647 ^ 257832255457 PASSED! +2147483647 ^ 257966473185 PASSED! +2147483647 ^ 258234908641 PASSED! +2147483647 ^ 258771779553 PASSED! +2147483647 ^ 259845521377 PASSED! +2147483647 ^ 261993005025 PASSED! +2147483647 ^ 266287972321 PASSED! +4294967295 ^ 266287972322 PASSED! +4294967295 ^ 266287972324 PASSED! +4294967295 ^ 266287972328 PASSED! +4294967295 ^ 266287972336 PASSED! +4294967295 ^ 266287972352 PASSED! +4294967295 ^ 266287972384 PASSED! +4294967295 ^ 266287972448 PASSED! +4294967295 ^ 266287972576 PASSED! +4294967295 ^ 266287972832 PASSED! +4294967295 ^ 266287973344 PASSED! +4294967295 ^ 266287974368 PASSED! +4294967295 ^ 266287976416 PASSED! +4294967295 ^ 266287980512 PASSED! +4294967295 ^ 266287988704 PASSED! +4294967295 ^ 266288005088 PASSED! +4294967295 ^ 266288037856 PASSED! +4294967295 ^ 266288103392 PASSED! +4294967295 ^ 266288234464 PASSED! +4294967295 ^ 266288496608 PASSED! +4294967295 ^ 266289020896 PASSED! +4294967295 ^ 266290069472 PASSED! +4294967295 ^ 266292166624 PASSED! +4294967295 ^ 266296360928 PASSED! +4294967295 ^ 266304749536 PASSED! +4294967295 ^ 266321526752 PASSED! +4294967295 ^ 266355081184 PASSED! +4294967295 ^ 266422190048 PASSED! +4294967295 ^ 266556407776 PASSED! +4294967295 ^ 266824843232 PASSED! +4294967295 ^ 267361714144 PASSED! +4294967295 ^ 268435455968 PASSED! +4294967295 ^ 270582939616 PASSED! +4294967295 ^ 274877906912 PASSED! +8589934591 ^ 274877906913 PASSED! +8589934591 ^ 274877906915 PASSED! +8589934591 ^ 274877906919 PASSED! +8589934591 ^ 274877906927 PASSED! +8589934591 ^ 274877906943 PASSED! +8589934591 ^ 274877906975 PASSED! +8589934591 ^ 274877907039 PASSED! +8589934591 ^ 274877907167 PASSED! +8589934591 ^ 274877907423 PASSED! +8589934591 ^ 274877907935 PASSED! +8589934591 ^ 274877908959 PASSED! +8589934591 ^ 274877911007 PASSED! +8589934591 ^ 274877915103 PASSED! +8589934591 ^ 274877923295 PASSED! +8589934591 ^ 274877939679 PASSED! +8589934591 ^ 274877972447 PASSED! +8589934591 ^ 274878037983 PASSED! +8589934591 ^ 274878169055 PASSED! +8589934591 ^ 274878431199 PASSED! +8589934591 ^ 274878955487 PASSED! +8589934591 ^ 274880004063 PASSED! +8589934591 ^ 274882101215 PASSED! +8589934591 ^ 274886295519 PASSED! +8589934591 ^ 274894684127 PASSED! +8589934591 ^ 274911461343 PASSED! +8589934591 ^ 274945015775 PASSED! +8589934591 ^ 275012124639 PASSED! +8589934591 ^ 275146342367 PASSED! +8589934591 ^ 275414777823 PASSED! +8589934591 ^ 275951648735 PASSED! +8589934591 ^ 277025390559 PASSED! +8589934591 ^ 279172874207 PASSED! +8589934591 ^ 283467841503 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_10_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..36621d9142570ac0fa5a0590fb055e30c969bfd2 GIT binary patch literal 3477 zcmV;G4Qld3S5qb}7ytlx+O1ekY#T{-uGfFnMT!zBQU8|JvT4hbTOuXz{8(d4q9xMS zk0q}pdu-2=!zR^~Xj7zyY|8S?&I};H3k13BWZ}(jfB^C!2!hOE0_-7|0DA~>2#^3G z30nwq+e?BRgWQ!@-6TahGugw83{_Ws@9*n+?^Tz)PozH(()!ng^Z=Rn^%6q9?D!8L zX3p*UIE`8ebd9e95{wJY4g-nQA!QEfuo1%gt2K%$hr9&MF2c z#wXCxW@;*(FYFlBw6VLJ&7=(OF1SBd+|H+-J~Q^rv2@lbZr=!=DsmeuV`a_h@UD^C zHnnKh+}FaV=C-nT291Yvi^{#+Es4=03i^Zi^d`{RW0*PEWq4Etay{WN7l5 zLzja$f^TJ_hG251$-MVJ#T#T!I5|0a>=H5i3jRvor~iBnYk-hT|8w`Ze}c1ra&4GJ zi~QdIhfYGcBwa9e%n9Npxia+bs$dF+IZZ)S?SS>rjoo8QZrbJ@&pYbw7pZfxe0=D3AwO1M}w3zo8)d}5}o z&a=WPN9Z#5cTu=eD4A|&8a1*-vj(q}ve~-E^IcQgHHt+kZDg|YeJhhK`rmSCgUY?| z`g&wu)tu*$5)CgbN9H>;=Q*S~{>;rOO?9S`Pimnfg+jjI-o-b!*34olYbm#vS8s)v z+dj(Mub^#Z^GPEcbKeWkEroAKmKWAHIzO{(Bc%r>0%*C1Df@hC$`f9@egAG`Wh1h- zwz}38E^L)}OV|OXH2a}lWE+p}MQnw3{&r`Dt!t5JWG%8X=V)}VnQ60N=2CB|xz@rf zw;h#^H7uyN#OnRE1zYIjle5ty55mh%^vIr(Ju7rSh^#F{AK7C61GA7xKYz=5t6(JU zxyNXJIcC-0q_uE{v8&Kvrp$1ca2VncK3qAq!8C zkF_oC=AS7mrJbZ%fL&HBC5tu((MT43_g2>zHWnU4K3-UfF03qUJd)Gde7+!u3kBo3 zTHMa0EpBaWZsJ4K;#!N-h2|bVYuh6HF^?T-Sa>ECJo8R-I=$!P+f^{ImG?{s={h5y z%j3bH$(aRZ9beKi6{p@^E5?e}G|kz}IWNOfoP~?$TQhmGBnz8ZPTTFfl6SD;xN7B{ zjaHo31=HPh3VZ6!Xs5e{r@MaS_>gX?RvwNAcN3y$TX}0r(=^^W+TBcXhrhQrrbTKF zZNZe*rfW_s*VaMp{z~NGy~x}~WL~q&8*PfFsX52dxKW&H>i;VvvW44bDo*j!Om5TM zUrn<{yLLNfNKV5~m)5{NXF9(BtkxMBtu>Tf#6!gF=z=b_hjzJoJUyKv1>8 zq}$c!;cJ=nbutlDCh=bx2f?k<7LYtlZk6q))CO**dclWtrCqk4Us4b#h!i9WG6jVK zr2?apn?ehPRtjwtycB#C+9`BU$xmq)r9Bk-DD+c$j=}(iE((YYQW&Cek-{Yk!xTm+ zT%|BZAxI%aVS>UWg=-XkLg5_>?^1Y=s_#?vI#s8r`TQza)mf^Bsd|g5 zb5xzDYJ@_ReE@70*d1U?z{0?mf!zhR0&Er7JzzftHUn%8*ezh|z&3#02lfEihrk{J za|>)9SReEQb$vvIpHU%3g*X*HW=v$)(T&8`C3a3?8HxEN7L-_@#FixX1b5{r^<=4M zhkA0V*%)POl(nd%0{;$^<`KSQ_67&pj-)wJ8#i zQU1PHF$&T7E{tIeyawULDTonB2m_D_^iL+yJ-LS7$xlcNA@ATjkazKg$$O-YkbY1l zfB|?PM$e6aR{{b3ssO)%*!6PsI*g|1!RsVd=}7E)rM72mspG3_11c=}@baP;`#byXEdV$-9?>FKXhQZ*?V)2gJ3iRpmW`EMsD@tFWI zX1wp9K_xL85E3)dun@ad4h$w{ULn8eE%=(dd1JeoK{qosH#4@InZRJ@Kc1XakcOlv z0DlHU2gjTW_dy&70pdSLu$M+t^1*RZR^^cZ;qy24+^eDN-LT8dHjl|~y=Z!hebx9#r}(r~!oI9zOYSgtmd zzkbEx*EZ}OXtMh*BC$D~r{{i!)gUEhV@{P-DKQryJ*M-H3VxSio4+Db9z@FbkaD>Z ztL-BC=S5b_<*DRVy-K_-TxIbz-E)|33}~l&&Q3Rv_cu;FD&k2LjLny$^HBFt#`3GY zibfhhELx66PsM1aN@$k zWdBzU=jgJ7ka9zE*c_Jeu)hE-8Z4G(lOM#Q;m8iEeJ>sDZ8|Pa=TCoZI^V&f(M@gM zW-_l1y!bgPA2f4vb50NcD5Y|_!wLQWaO1wuQbYeOlmh%7VvCE5%@NYm_Uc(XS5PU~|ZcyH)+sVNyDb ztzh9sR|FjYHo7W~rWE5|Qc;x=RgNvAZF>1DJWu7MVl1nQDkqi$L!Ez#2kR1-E!Aa9 zwrmMy#>olaCl3H~iASN^gtP*<+{#htXo29WO+d*PM0jU|RIPU42dDZ{ zPx$f9p&JLsUc8U!NjwKDTv9oeys1gv@K2dksrD^!arNalzaDMBf+iV(A;%1nP zc!vo&3MHk`WBvge4PE61rjUi`N8|-p=5y2^z>NP4jkuw(8WUo1oB&_ouM{ABmi{=J z5TbGM4qO-=Cx)EFiw;Tgi|r;6MPd@X`lk6UuS3M0kMXcb-Nn0b>+r>E?=AeoOZpc7 zqLdTcl|%iL!|EXyjMxIx-%}S94l6GY_2Oamr7dSRu3LN&%am6$faq9nVILa})H za)q-Zr1KOSu0dU=kXD1bWm%H_SQeGv)%IC8?R`dBk0?lT3#w;0XD3i^6SiH$`T!)k z(FXn424Y*i4W2xNfo&Dxb0Yp>Fmx2+jqk<#EQ>uYSJK(lr%=Jht(4O{o&R-mf{FtG zAUOSXp4V~&Yq?85Z*;}G^=_j(-lO*#J@H;$GkW8F`URse-meFY{`filvT-gxpkFZt z;^*~I<9vKj*NwrrrjHvMIvbSnla)IPX)jVrMc<3&pm + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/output.txt new file mode 100644 index 000000000..549149255 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/output.txt @@ -0,0 +1,62 @@ +void 0 && void 0 PASSED! +null && null PASSED! +0 && 0 PASSED! +1 && 1 PASSED! +-1 && -1 PASSED! +54 && 54 PASSED! +54 && 45 PASSED! +true && true PASSED! +true && false PASSED! +false && true PASSED! +false && false PASSED! +0 && true PASSED! +true && 0 PASSED! +true && 1 PASSED! +1 && true PASSED! +-1 && true PASSED! +true && -1 PASSED! +true && 9 PASSED! +true && -9 PASSED! +9 && true PASSED! +true && Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY && true PASSED! +true && 'str' PASSED! +'str' && true PASSED! +false && 'str' PASSED! +'str' && false PASSED! +NaN && NaN PASSED! +NaN && 0 PASSED! +0 && NaN PASSED! +NaN && Infinity PASSED! +Infinity && NaN PASSED! +void 0 || void 0 PASSED! +null || null PASSED! +0 || 0 PASSED! +1 || 1 PASSED! +-1 || -1 PASSED! +54 || 54 PASSED! +54 || 45 PASSED! +true || true PASSED! +true || false PASSED! +false || true PASSED! +false || false PASSED! +0 || true PASSED! +true || 0 PASSED! +true || 1 PASSED! +1 || true PASSED! +-1 || true PASSED! +true || -1 PASSED! +true || 9 PASSED! +true || -9 PASSED! +9 || true PASSED! +true || Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY || true PASSED! +true || 'str' PASSED! +'str'|| true PASSED! +false || 'str' PASSED! +'str' || false PASSED! +NaN || NaN PASSED! +NaN || 0 PASSED! +0 || NaN PASSED! +NaN || Infinity PASSED! +Infinity || NaN PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..a4b7fd9e7cde206e395c46501884791036318a83 GIT binary patch literal 3874 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_11/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/Test.as new file mode 100644 index 000000000..3277b544c --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/Test.as @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_12"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "true ? 'PASSED' : 'FAILED'", "PASSED", (true?"PASSED":"FAILED")); + array[item++] = Assert.expectEq( "false ? 'FAILED' : 'PASSED'", "PASSED", (false?"FAILED":"PASSED")); + + array[item++] = Assert.expectEq( "1 ? 'PASSED' : 'FAILED'", "PASSED", (1?"PASSED":"FAILED")); + array[item++] = Assert.expectEq( "0 ? 'FAILED' : 'PASSED'", "PASSED", (0?"FAILED":"PASSED")); + array[item++] = Assert.expectEq( "-1 ? 'PASSED' : 'FAILED'", "PASSED", (-1?"PASSED":"FAILED")); + + array[item++] = Assert.expectEq( "NaN ? 'FAILED' : 'PASSED'", "PASSED", (Number.NaN?"FAILED":"PASSED")); + + array[item++] = Assert.expectEq( "var VAR = true ? , : 'FAILED'", "PASSED", (VAR = true ? "PASSED" : "FAILED") ); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/output.txt new file mode 100644 index 000000000..f165b9894 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/output.txt @@ -0,0 +1,7 @@ +true ? 'PASSED' : 'FAILED' PASSED! +false ? 'FAILED' : 'PASSED' PASSED! +1 ? 'PASSED' : 'FAILED' PASSED! +0 ? 'FAILED' : 'PASSED' PASSED! +-1 ? 'PASSED' : 'FAILED' PASSED! +NaN ? 'FAILED' : 'PASSED' PASSED! +var VAR = true ? , : 'FAILED' PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..814cc173e88eecfc0f40a74e793d41a28ba74712 GIT binary patch literal 2622 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/Test.as new file mode 100644 index 000000000..81a0cbf0e --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/Test.as @@ -0,0 +1,30 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "11_12_3"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + // the following expression should NOT be an error in JS. + var MYVAR = true ? ('FAIL1', 'PASSED') : 'FAIL2'; + array[item++] = Assert.expectEq( + "var MYVAR = true ? ('FAIL1', 'PASSED') : 'FAIL2'; MYVAR", + "PASSED", + MYVAR ); + + // get around potential parse time error by putting expression in an eval statement + + //array[tc].actual = array[tc].actual; + return (array); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/output.txt new file mode 100644 index 000000000..67e39b8a6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/output.txt @@ -0,0 +1 @@ +var MYVAR = true ? ('FAIL1', 'PASSED') : 'FAIL2'; MYVAR PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..e84c9f7ba08fcf1f809b6bd8a976f835e52e109d GIT binary patch literal 2476 zcmV;d2~+k%S5qcl4*&po+J#rkQya+{@1E(IR_g(h5E5?>wiX#YNCV!r*IJvk3=&}T zumyN+@1oU6YJswYq|A&kPAaukRQa&S9K2P@iCl8oO69QEROOUIs&W8PYu|H8D#!c- zPWOxe;YuX~GyV1Nd-nI3fdhd44nWWE0T_T_Av6d8__psK5P-X8rJBw!gCIq$(J{i4Ra?obLY;Tls221otKG-_p? zn@b%`Tf2?&H!t;lI$bq%Yxi#ILXhj&HQS(bnWkRerAp4A2TJBb-4S*rxNPMj&bdxN zRi=^D9c?ErN26Pg>or>?qh{?=^UTjiqiVm@P3ExCs#h*tT?lfuvPpHj@qd-h#JGx~ z*LPa_4xOX*ueUZF_BrI7K)31K>}};?%TQ*u*_&>-9K4(Qpb{N~6?YCS1pg`C1@prD z_wQeLMOJ;8-6;6YUvIJ=0N@YNwcmWlsK0nOsbzydNBRN)a8A|K_vj1=f+X7rOMm>+ zZ~y)77jruRKWH=zs@LTW+pN`hJh@iA%zdK$My(>&>Netr0#3n_m73Kw^jBoHv0tO} zMy=UXZtNxXN~1)RHWQOGmPJilUN8NOmhJw_%(Tn&(t{>rZkjFXbIF`;ShNGLwG87- z;#HHPrfylNs@Du@%dQz#xyZV0I z)>v7~xZVDHyjotp9nJAqAQx2?Qu`kK;3)?0feYD!h3 zq1&>%@$$4Pl;;HT*rh6;611w@yP{sQylV}YX(c^&!<}8(p!FSlSGHOu%QhkPb-nxo zXEWer+0V0lHt8W2eydXz*O0FZk(Hf>omLcuH>|Q+v-Wr%lxZc~G3YSTO0TN86V%zK zl&!Vwv&Y%_&Fq5WbQROFC{^6IKvK8TU1N8BQnFbZsqFR~uGK5_V7*GtrzGa8vEUT; z#Zb=iz@0uu1tjeZ`35{P++0(>ul zp?)Gl4?+Bv*hBDnupgoTk$NO&MZM5RJV6*@v>cY4^=k|T3`GnPh7yJ{h8PP3BOiu- z40|x_#W09r2*WUjeHcYBj$%B3;Sh$y7>{5$ieVH(hFrmL9K&lEeuQBH!$}NpU^tCo z3PTOU84PDJyouq*7=D7`EevmC&!^aP2g5Y^3=*F}hTt&7-uqa{VBrB4=CQCqh)C{0 zvWmzWA|r@AMkInr3Xvg1o*fyjDi1hiBRY)f(QhJ*pB}? zX!o-t2f2XrIKL44>0E-qm7VY5|9%L9Aaw^JW5T=x4%+HYR6@n1I;TcYb18AEEa_TF@<@{>ODtUw60dlyE%HJ@ zuTMVKj+X)3iEK-59cvU6iB_D^inChrrdIq|D}JICu~xkG42-(hu6!Rfmme!IC72=x^{?J3Z}-0C4(7%|<*d*xcc}Agi*vc=)c} z=A8Bg=WU1cR)vRU)IJ?r=IqlqKYTwGz7D`76J7dYD$M>|nq>Btf0zn|T=EQUbM*T# zVOAb83qjTy>LX65j96iWt9Bt9?gOCs>1q3SxjQfg{b%yq>67+p39YADI@L!JR+)*V z1WTbT%ZPk?tbH+6MjC}DdyvBRo zly-wFP{Dw?&%kRg%xNY+>XC|fnG#nN*6#`1bBus|!)_D@oT`4FyD#MC#3gujDhV>u z1Hk5Jo)5|b5Jiw>g#bC$nE;C{^V{4l3*8IANpbP$^-sYE05D`F65_~G`$&C$bb7=Y zlMdryWZ;bP;;8-RNd5BY^o_$O4z7O1H`~i6>&uXp*MmeP`Hr>ixs!=Dj|u>C0VO(+ z_X1KnkWZ436k%=A{;`v1^`Vnz#`B8;lKf13naAup3Upyh9jpgJB%QZ!FKb`1_pE&% zK7*sX9tH9N9qI;am62318LEDWhv^`XMB8rO#lBkF`cQW#aQ>!XD+bxI#ATv1j1 zN+E5 zbd-B4FucDD|Dp?zcHz&u@K_iAybB-b!e4aZgI)NSUHDKJ{#6$~EQ%uPXLxn1-NRcf q4%)eG;q_1aRW)*{z@wK6TzDpo?gkl5`uGRH`5);%BmM(RlGsS=$I7(; literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_3/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/Test.as new file mode 100644 index 000000000..5de6c6e1e --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/Test.as @@ -0,0 +1,30 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "11_12_4"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + // the following expression should NOT be an error in JS. + true ? MYVAR1 = 'PASSED' : MYVAR1 = 'FAILED' + array[item++] = Assert.expectEq( + "true ? MYVAR1 = 'PASSED' : MYVAR1 = 'FAILED'; MYVAR1", + "PASSED", + MYVAR1); + + // get around potential parse time error by putting expression in an eval statement + + //array[tc].actual = ( array[tc].actual ); + return (array); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/output.txt new file mode 100644 index 000000000..8e678f32f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/output.txt @@ -0,0 +1 @@ +true ? MYVAR1 = 'PASSED' : MYVAR1 = 'FAILED'; MYVAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..0689c7eef993ea01b839e60fb846f80920aae152 GIT binary patch literal 2477 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_12_4/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/Test.as new file mode 100644 index 000000000..5e942fa92 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/Test.as @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_12"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "true ? 'PASSED' : 'FAILED'", "PASSED", (true?"PASSED":"FAILED")); + array[item++] = Assert.expectEq( "false ? 'FAILED' : 'PASSED'", "PASSED", (false?"FAILED":"PASSED")); + + array[item++] = Assert.expectEq( "1 ? 'PASSED' : 'FAILED'", "PASSED", (1?"PASSED":"FAILED")); + array[item++] = Assert.expectEq( "0 ? 'FAILED' : 'PASSED'", "PASSED", (0?"FAILED":"PASSED")); + array[item++] = Assert.expectEq( "-1 ? 'PASSED' : 'FAILED'", "PASSED", (-1?"PASSED":"FAILED")); + + array[item++] = Assert.expectEq( "NaN ? 'FAILED' : 'PASSED'", "PASSED", (Number.NaN?"FAILED":"PASSED")); + + array[item++] = Assert.expectEq( "var VAR = true ? , : 'FAILED'", "PASSED", (VAR = true ? "PASSED" : "FAILED") ); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/output.txt new file mode 100644 index 000000000..f165b9894 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/output.txt @@ -0,0 +1,7 @@ +true ? 'PASSED' : 'FAILED' PASSED! +false ? 'FAILED' : 'PASSED' PASSED! +1 ? 'PASSED' : 'FAILED' PASSED! +0 ? 'FAILED' : 'PASSED' PASSED! +-1 ? 'PASSED' : 'FAILED' PASSED! +NaN ? 'FAILED' : 'PASSED' PASSED! +var VAR = true ? , : 'FAILED' PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..1b710befc817ac837af643e561da336db3359381 GIT binary patch literal 2624 zcmV-G3cvM3S5qbl5dZ*q+J#rmQya+@@1E(Io|X_uLP&gjuvug9APKzdU2AP@86=F2 z!7IRPdl#)nq6OL&5}6rcoK$M7sPZ9Ix#ZxjN>1dG%N}yrYbrVAkg6O&)Y|u4lFBjv zfb)7rfN-2dpqbad_j|A3^!t#shsfU$>iiu-y%^1f`Vd0jcK;nCbko`>r*d;yeQ zvs19THMZqAJE=tC`Sa)T=hxzOYcnx*I}nhX9z zzKLd~w{PD*^U08X72YKH&0nrT4IuQ(_|mU`0n(p+tK4?bpCW(kL`Z1LmbuNRP!Ppo zA>I4^AAa+%H$R=JBYL-9uX3}dt~geuwy9+swUXGA?A9wAa;4@F;V9rHEWS~(cdF(K z_OQNN;j`7sPG_mU9XB`XMILv6rlxJ1TaLP1{F;}Xp7Y9-r}Xi?9Z;@X4es~EtXZ{r z3tnnet0#;XJDlv8woS@rrK+qsm8u>>(;&di0=90 z8!27$#LQ1xTW2h*ZuxiM$(bn0?diFtjKC`&6 zvfA@Aw>C<~=+r1!?n26bo=OGMx%st+nWfcCF1MVErmf9}XbE?NlEuU?964dnOtUR)?>tSyv!|LE4@SW<ohxZ=Pua@DJSTB&XDz2!1H?beuQ2Epm@$)%s-fpZN%aGrHeM_c`**f2vl z^9~7^-BBFXdTG?x8|dv(kb<D4om_}=~Uc1 z>B4@d1#t*uHLSSzBE=HLGR1^qg<_RrN+m{#pW+URJ1Op>I7o4b;xNVCltd_vQrb&# zKg9!-4pKZsag<^}E>Ju|@g<5spm>bpaf+`}JV|ka;v~gW6i-upjp7d}{)po16n{*$ zPpEc-;uQN7Grz?8@c?GCn9X69#ng9?N()rFPo)P`T4YRSH!xcx>@i`3ggqfFLRf;Z ze!`v-_6)-Rf(E{%fpr?l)4*3WP+(EQdI?Jr)}b)24yf#@$~Gx`Mwy?oEz0^S`!jvT@3;QZ`9hjj|4H7`^8uW2tqMWF!#+EAj85?bj9$3xaz&eG&L; zy(CE(yC2a1`yxq_(jJ6L8SIWU#uU`4`Y_V`7_knFd;yI7ofvg=VH5~5rlLXcK$MV* zQ4EJw3H9ObkgP;PMC}PFG#rV7ei+BVTMYLi8T5S+ppN^YurA^O_#QEe2N6Y=@etC` z6+Da>n!p#34;ffTeiX+eA-Vfvh(s=hl%CO$8vP(dW0yl(?^uZST?zU6$3y-BBFiel zXhJ;iRoDe}VU1uM!Ui4=4&fld(y(|4{90O{yg!Nde;h^ouaBCIiC^u%esf%i8@G(; zU6RXqi!OqHkK zQL=D7S@<|v_#|1N$-<2%XvlkQsdv!E)opn_l}!mj0&5~+ znRFc{^C2U)70QQ=zO698ilWHmulO)|eB2#D==hcKFrq<(OZ#tvQ2)mA{+nh~Xqso5 z*DcL!1Mine^SFOOsE=QL|J_9R3PR&Ref0fA7{1w#gTK$dp9qCK@dRxO^t&(vFFEiK zgq|^0gkXTM3W8^L#tnBPRQU9``P=MGoWLC?{PkN$&Eq0jz6I4}tVEz@FW(!3BUDwD zux}5OpF`axIX>FP95=Tmj*quxj*ZW^3CH^Ww!(2$-bkbI;21)OP@lEGZ!~D#A1E%Xn7GsdNm>w#ebMwPaj=wil`7`XV6#+@|{6?3-T)p zQ6f+l%^zClY~poMi}OqA2|?Sk@^yH3jY;S)Txr2!n2 zVFZsHCdC{H!jB!czI4)8(m_zwtW5OKHUoZ^wLS8rGrVh@! z6)Kb3VN!otQkzCO`x&<1G)K|#sB)0aNiW5uGPWW?D8Ln?a`~vR`or>?9E`Zx_&Ufd_q}eG-Y!o%K1?lCF iVpI*DOYqRS1e;H!p{*dmtXq6Ex<6;{fbegn%|2%41~oJQ literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/Test.as new file mode 100644 index 000000000..2b6e747f7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/Test.as @@ -0,0 +1,23 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_13_1"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "SOMEVAR = true", true, SOMEVAR = true ); + + + return ( array ); +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/output.txt new file mode 100644 index 000000000..df6e9d7e5 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/output.txt @@ -0,0 +1 @@ +SOMEVAR = true PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..86a8f14b434c0483fb1c8f7775f28204d6af9813 GIT binary patch literal 2443 zcmV;633T>DS5qc14*&po+J#rmQya+@@1E(IR_g;aASAv$*jg}nkOsW#UCTDM43Z7z z!xrGRy^B^OsRhaok}@;GIH}ZDQRTxPbMRIrCvwTfhaC2rs+@92RSqC(?R%T@c|B3Lwv#hAZ{AGmv&q@nX=X8Pzp6RL{&da0GBM`{SfF;v zsy3Wzy{7WDQLHzeI};P_sO8dG&_>fT-H_!{lA3gv)*L%IlbB(F%B57LZtWV*oY82Q z)sn%(CHJT8oqFlpm&P8Qu9$|sb31u%$bFouW74^F!zk@gHEYs+HGS^x8haMpwtSxF zTsxr(^GF!3x0{#i(P_v18qK0vwRfm>y3cyO;=D90wqdtTwtz_1%O~t`}*-VP0=a}lnqve$9 z^Tf>0+goQWt8N7v?Bq_4+D+4uA1trkPcL_WRd2jl_#b@HobC0#`SE*DeoqMpkl3CrziNU82ay+SsgKhC%YJ^XYR zm0h_^Hj~S&&U+TI9Ia4`)=D3l`E%*j2cAi9juGl3wQn=G=qeR1T--hLG`;NYp4l_Z zi^{;$Ol~pz+*L=OQma~d^^y0sWfWaGWON>mIHxD+vMyxox6ZQjHLa>=Oiwos?49r7 zZy1(M+tFBCONLGD;5KzQ_2&6Pa$6*&Ez5W{)}D8d28^0OkIoK)fLM=OT2BN|29 zzgqW{cEab>y_u9vTHAJZWV>0k9ShPx$4f1A%5ArLL0-Mn307G8&33iDK!FZKR=4X; zN>x=(M0KTV@A5jR(`u$2&{d?=ZcX(jqrFb5o2!{;k2CWdnFZBl3-hrlRlVs>7c@Gf9b8Bxczg zg;8HWj{5sU{e2RUfbVwnZVXBw<{u34wFCzHhzNZI@sGrALcoWE5QT`;CAm-34Fkj% zh6KM*oIE&$R3_r#2GYoHF_&N4{fqgeI zOp#lV1Oze%$sinp*nbZTX)N5w!aNoh2ocFmNLCP8MPwL}$B0A_Ng^_c$P+|zEb(<5 z+Q6Yr9D0gFU*ga+5=EpRkrX09iEPP3GI=7CZ!pPW62R=pWDt`gCS#a9!GvOR1(Q!O znZRTclWUkvV^YB+=o!O|awjJaK?(OVC?5BMR0(W-5>i+jl z5Co|+2^kZ%JMa-AfiBq(fiD072}0lxK@jMIAlMB-C`^b9hFJt8DKZ2x*dq&I0QM@P z6j6}er%1Rb5@q^P7-P|5upfv_Kfn@H;UJ^bWjMsXk>hX}U@#6xfDc@Sqkw=ZcnSD{ z22~IM2{@*Ry_XdfxuQsYaYc@PqTtxL;_IJK$iP*_KRBrbhL9-A2!bho-fL_Z&<%YE zLIrAYG&};s2nwUXCqek>*7VXeIQS_J4&EKNnp3|%c=!IKkkIao=ab`8C1fOv$cM7J z$mJO>PaZ#HRf3TC#UuRzuRrt$tt||t54p%{b8!-Dgcwr^x@m7 z9`*;&B#XEBc1lq^@f2-w^oJh8qAalpVMYk;5f?NjEHlA#JGbrW1)y;Ar1iUO3MOIj z)PC#MaqFar)^4F9(jG-vL&hIYuoB9$jL3IK`j@P-I)%r(kiyokK;g-*NTIg2izrkN zb|nf;v782z;Ryha^dizQ~Ex721j;$3=WIz{W5l>^C<~;vGlf<&O#!!A( z8#jjYBidDCBtNQ68Ke12nr2+et6IWPS+HISi>P*_tFKFPOUq~1p#8oT2PbjqF#A|| zUE{*mq4I@YpQTRwdj)THx%gNO`11}t)`7q1!23J!uR8F74*cs5 ze6R!G>cEFYQAB+VuRLvaaf-!3E1MTy|HNNa!xtJna-qTBJQGHC!VD(8{Jrn~*K>~v J{{g82&rAIZv3dXi literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/Test.as new file mode 100644 index 000000000..f588dd582 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/Test.as @@ -0,0 +1,93 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_13_2_1"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() +{ + var array = new Array(); + var item = 0; + + // NaN cases + + VAR1 = Number.NaN; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 *= VAR2", Number.NaN, VAR1 *= VAR2 ); + VAR1 = Number.NaN; VAR2=1; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 *= VAR2; VAR1", Number.NaN, VAR1 ); + + // number cases + VAR1 = 0; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 *= VAR2", 0, VAR1 *= VAR2 ); + VAR1 = 0; VAR2=1; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 *= VAR2;VAR1", 0, VAR1 ); + VAR1 = 0XFF; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = 0xFF; VAR2 = 0xA, VAR1 *= VAR2", 2550, VAR1 *= VAR2 ); + + // special multiplication cases + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR1 *= VAR2", Number.NaN, VAR1 ); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR1 *= VAR2", Number.NaN, VAR1 ); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR1 *= VAR2", Number.NaN, VAR1 ); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR1 *= VAR2", Number.NaN, VAR1 ); + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR2 *= VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR2 *= VAR1", Number.NaN, VAR2 ); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR2 *= VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR2 *= VAR1", Number.NaN, VAR2 ); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR2 *= VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR2 *= VAR1", Number.NaN, VAR2 ); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR2 *= VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR2 *= VAR1", Number.NaN, VAR2 ); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= Infinity; VAR1 *= VAR2", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= -Infinity; VAR1 *= VAR2", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2= Infinity; VAR1 *= VAR2", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2=-Infinity; VAR1 *= VAR2", Number.POSITIVE_INFINITY, VAR1 ); + + // string cases + VAR1 = 10; VAR2 = '255'; + array[item++] = Assert.expectEq( "VAR1 = 10; VAR2 = '255', VAR1 *= VAR2", 2550, VAR1 *= VAR2 ); + VAR1 = '255'; VAR2 = 10; + array[item++] = Assert.expectEq( "VAR1 = '255'; VAR2 = 10, VAR1 *= VAR2", 2550, VAR1 *= VAR2 ); + VAR1 = 10; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = 10; VAR2 = '0XFF', VAR1 *= VAR2", 2550, VAR1 *= VAR2 ); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 *= VAR2", 2550, VAR1 *= VAR2 ); + VAR1 = '10'; VAR2 = '255'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '255', VAR1 *= VAR2", 2550, VAR1 *= VAR2); + VAR1 = '10'; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '0XFF', VAR1 *= VAR2", 2550, VAR1 *= VAR2); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 *= VAR2", 2550, VAR1 *= VAR2); + + // boolean cases + VAR1 = true; VAR2 = false; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = false; VAR1 *= VAR2", 0, VAR1 *= VAR2 ); + VAR1 = true; VAR2 = true; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = true; VAR1 *= VAR2", 1, VAR1 *= VAR2); + + // object cases + VAR1 = new Boolean(true); VAR2 = 10; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Boolean(true); VAR2 = 10; VAR1 *= VAR2;VAR1", 10, VAR1 ); + VAR1 = new Number(11); VAR2 = 10; VAR1 *= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = 10; VAR1 *= VAR2; VAR1", 110, VAR1); + VAR1 = new Number(11); VAR2 = new Number(10); + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = new Number(10); VAR1 *= VAR2", 110, VAR1 *= VAR2 ); + VAR1 = String('15'); VAR2 = new String('0xF'); + array[item++] = Assert.expectEq( "VAR1 = new String('15'); VAR2 = new String('0xF'); VAR1 *= VAR2", 225, VAR1 *= VAR2); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/output.txt new file mode 100644 index 000000000..a4946e7a7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/output.txt @@ -0,0 +1,30 @@ +VAR1 = NaN; VAR2=1; VAR1 *= VAR2 PASSED! +VAR1 = NaN; VAR2=1; VAR1 *= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=1; VAR1 *= VAR2 PASSED! +VAR1 = 0; VAR2=1; VAR1 *= VAR2;VAR1 PASSED! +VAR1 = 0xFF; VAR2 = 0xA, VAR1 *= VAR2 PASSED! +VAR1 = 0; VAR2= Infinity; VAR1 *= VAR2 PASSED! +VAR1 = -0; VAR2= Infinity; VAR1 *= VAR2 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR1 *= VAR2 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR1 *= VAR2 PASSED! +VAR1 = 0; VAR2= Infinity; VAR2 *= VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR2 *= VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR2 *= VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR2 *= VAR1 PASSED! +VAR1 = Infinity; VAR2= Infinity; VAR1 *= VAR2 PASSED! +VAR1 = Infinity; VAR2= -Infinity; VAR1 *= VAR2 PASSED! +VAR1 =-Infinity; VAR2= Infinity; VAR1 *= VAR2 PASSED! +VAR1 =-Infinity; VAR2=-Infinity; VAR1 *= VAR2 PASSED! +VAR1 = 10; VAR2 = '255', VAR1 *= VAR2 PASSED! +VAR1 = '255'; VAR2 = 10, VAR1 *= VAR2 PASSED! +VAR1 = 10; VAR2 = '0XFF', VAR1 *= VAR2 PASSED! +VAR1 = '0xFF'; VAR2 = 0xA, VAR1 *= VAR2 PASSED! +VAR1 = '10'; VAR2 = '255', VAR1 *= VAR2 PASSED! +VAR1 = '10'; VAR2 = '0XFF', VAR1 *= VAR2 PASSED! +VAR1 = '0xFF'; VAR2 = 0xA, VAR1 *= VAR2 PASSED! +VAR1 = true; VAR2 = false; VAR1 *= VAR2 PASSED! +VAR1 = true; VAR2 = true; VAR1 *= VAR2 PASSED! +VAR1 = new Boolean(true); VAR2 = 10; VAR1 *= VAR2;VAR1 PASSED! +VAR1 = new Number(11); VAR2 = 10; VAR1 *= VAR2; VAR1 PASSED! +VAR1 = new Number(11); VAR2 = new Number(10); VAR1 *= VAR2 PASSED! +VAR1 = new String('15'); VAR2 = new String('0xF'); VAR1 *= VAR2 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..ef9b4e1f4bc9340a941d0f16443a920e75ab5d59 GIT binary patch literal 3697 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 PnEh|FkHGjp#cFj!wWc7P literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/Test.as new file mode 100644 index 000000000..6011b7466 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/Test.as @@ -0,0 +1,117 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_13_2_2"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // NaN cases + VAR1 = Number.NaN; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 /= VAR2", Number.NaN, VAR1 /= VAR2 ); + VAR1 = Number.NaN; VAR2=1; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 /= VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.NaN; VAR2=0; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 /= VAR2", Number.NaN, VAR1 /= VAR2 ); + VAR1 = Number.NaN; VAR2=0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 /= VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = 0; VAR2=Number.NaN; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 /= VAR2", Number.NaN, VAR1 /= VAR2 ); + VAR1 = 0; VAR2=Number.NaN; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 /= VAR2; VAR1", Number.NaN, VAR1 ); + + // number cases + VAR1 = 0; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 /= VAR2", 0, VAR1 /= VAR2); + VAR1 = 0; VAR2=1; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 /= VAR2;VAR1", 0, VAR1); + VAR1 = 0XFF; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = 0xFF; VAR2 = 0xA, VAR1 /= VAR2", 25.5, VAR1 /= VAR2); + + // special division cases + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR1 /= VAR2", 0, VAR1); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR1 /= VAR2", 0, VAR1 ); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR1 /= VAR2", 0, VAR1); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR1 /= VAR2", 0, VAR1); + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR2 /= VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR2 /= VAR1", Number.POSITIVE_INFINITY, VAR2); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR2 /= VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR2 /= VAR1", Number.NEGATIVE_INFINITY, VAR2); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR2 /= VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR2 /= VAR1", Number.POSITIVE_INFINITY, VAR2); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR2 /= VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR2 /= VAR1", Number.NEGATIVE_INFINITY, VAR2); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= Infinity; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= -Infinity; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2= Infinity; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2=-Infinity; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = 0; VAR2 = 0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= 0; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = 0; VAR2 = -0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -0; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = -0; VAR2 = 0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= 0; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = -0; VAR2 = -0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -0; VAR1 /= VAR2", Number.NaN, VAR1); + VAR1 = 1; VAR2 = 0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 1; VAR2= 0; VAR1 /= VAR2", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = 1; VAR2 = -0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 1; VAR2= -0; VAR1 /= VAR2", Number.NEGATIVE_INFINITY, VAR1); + VAR1 = -1; VAR2 = 0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -1; VAR2= 0; VAR1 /= VAR2", Number.NEGATIVE_INFINITY, VAR1); + VAR1 = -1; VAR2 = -0; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -1; VAR2= -0; VAR1 /= VAR2", Number.POSITIVE_INFINITY, VAR1); + + // string cases + VAR1 = 1000; VAR2 = '10', VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 1000; VAR2 = '10', VAR1 /= VAR2; VAR1", 100, VAR1); + VAR1 = '1000'; VAR2 = 10, VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = '1000'; VAR2 = 10, VAR1 /= VAR2; VAR1", 100, VAR1); +/* + VAR1 = 10; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = 10; VAR2 = '0XFF', VAR1 /= VAR2", 2550, VAR1 /= VAR2); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 /= VAR2", 2550, VAR1 /= VAR2); + VAR1 = '10'; VAR2 = '255'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '255', VAR1 /= VAR2", 2550, VAR1 /= VAR2); + VAR1 = '10'; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '0XFF', VAR1 /= VAR2", 2550, VAR1 /= VAR2); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 /= VAR2", 2550, VAR1 /= VAR2); + + // boolean cases + VAR1 = true; VAR2 = false; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = false; VAR1 /= VAR2", 0, VAR1 /= VAR2); + VAR1 = true; VAR2 = true; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = true; VAR1 /= VAR2", 1, VAR1 /= VAR2); + + // object cases + VAR1 = new Boolean(true); VAR2 = 10; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Boolean(true); VAR2 = 10; VAR1 /= VAR2;VAR1", 10, VAR1); + VAR1 = new Number(11); VAR2 = 10; VAR1 /= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = 10; VAR1 /= VAR2; VAR1", 110, VAR1); + VAR1 = new Number(11); VAR2 = new Number(10); + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = new Number(10); VAR1 /= VAR2", 110, VAR1 /= VAR2); + VAR1 = String('15'); VAR2 = new String('0xF'); + array[item++] = Assert.expectEq( "VAR1 = new String('15'); VAR2 = new String('0xF'); VAR1 /= VAR2", 255, VAR1 /= VAR2); + +*/ + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/output.txt new file mode 100644 index 000000000..259cc998b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/output.txt @@ -0,0 +1,31 @@ +VAR1 = NaN; VAR2=1; VAR1 /= VAR2 PASSED! +VAR1 = NaN; VAR2=1; VAR1 /= VAR2; VAR1 PASSED! +VAR1 = NaN; VAR2=0; VAR1 /= VAR2 PASSED! +VAR1 = NaN; VAR2=0; VAR1 /= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 /= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=1; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2=1; VAR1 /= VAR2;VAR1 PASSED! +VAR1 = 0xFF; VAR2 = 0xA, VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2= Infinity; VAR1 /= VAR2 PASSED! +VAR1 = -0; VAR2= Infinity; VAR1 /= VAR2 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2= Infinity; VAR2 /= VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR2 /= VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR2 /= VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR2 /= VAR1 PASSED! +VAR1 = Infinity; VAR2= Infinity; VAR1 /= VAR2 PASSED! +VAR1 = Infinity; VAR2= -Infinity; VAR1 /= VAR2 PASSED! +VAR1 =-Infinity; VAR2= Infinity; VAR1 /= VAR2 PASSED! +VAR1 =-Infinity; VAR2=-Infinity; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2= 0; VAR1 /= VAR2 PASSED! +VAR1 = 0; VAR2= -0; VAR1 /= VAR2 PASSED! +VAR1 = -0; VAR2= 0; VAR1 /= VAR2 PASSED! +VAR1 = -0; VAR2= -0; VAR1 /= VAR2 PASSED! +VAR1 = 1; VAR2= 0; VAR1 /= VAR2 PASSED! +VAR1 = 1; VAR2= -0; VAR1 /= VAR2 PASSED! +VAR1 = -1; VAR2= 0; VAR1 /= VAR2 PASSED! +VAR1 = -1; VAR2= -0; VAR1 /= VAR2 PASSED! +VAR1 = 1000; VAR2 = '10', VAR1 /= VAR2; VAR1 PASSED! +VAR1 = '1000'; VAR2 = 10, VAR1 /= VAR2; VAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..d742533f193ac393f57e8d91ceef144744dddeec GIT binary patch literal 3634 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/output.txt new file mode 100644 index 000000000..6824477dc --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/output.txt @@ -0,0 +1,40 @@ +VAR1 = NaN; VAR2=1; VAR1 %= VAR2 PASSED! +VAR1 = NaN; VAR2=1; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = NaN; VAR2=0; VAR1 %= VAR2 PASSED! +VAR1 = NaN; VAR2=0; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 %= VAR2 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= Infinity; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= -Infinity; VAR1 %= VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2= Infinity; VAR1 %= VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2=-Infinity; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2= Infinity; VAR2 %= VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR2 %= VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR2 %= VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR2 %= VAR1 PASSED! +VAR1 = 1; VAR2= Infinity; VAR2 %= VAR1 PASSED! +VAR1 = -1; VAR2= Infinity; VAR2 %= VAR1 PASSED! +VAR1 = -1; VAR2= -Infinity; VAR2 %= VAR1 PASSED! +VAR1 = 1; VAR2= -Infinity; VAR2 %= VAR1 PASSED! +VAR1 = 0; VAR2= 0; VAR1 %= VAR2 PASSED! +VAR1 = 0; VAR2= -0; VAR1 %= VAR2 PASSED! +VAR1 = -0; VAR2= 0; VAR1 %= VAR2 PASSED! +VAR1 = -0; VAR2= -0; VAR1 %= VAR2 PASSED! +VAR1 = 1; VAR2= 0; VAR1 %= VAR2 PASSED! +VAR1 = 1; VAR2= -0; VAR1 %= VAR2 PASSED! +VAR1 = -1; VAR2= 0; VAR1 %= VAR2 PASSED! +VAR1 = -1; VAR2= -0; VAR1 %= VAR2 PASSED! +VAR1 = 0; VAR2= Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = 1; VAR2= Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = -1; VAR2= Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = -1; VAR2= -Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = 1; VAR2= -Infinity; VAR1 %= VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= 1; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = -0; VAR2= 1; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = -0; VAR2= -1; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2= -1; VAR1 %= VAR2; VAR1 PASSED! +VAR1 = 1000; VAR2 = '10', VAR1 %= VAR2; VAR1 PASSED! +VAR1 = '1000'; VAR2 = 10, VAR1 %= VAR2; VAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..e929a6558ca768637bae23aeb7ece3a013c0566f GIT binary patch literal 3926 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_3/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/Test.as new file mode 100644 index 000000000..8a95b3f24 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/Test.as @@ -0,0 +1,115 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_13_2_4"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // If either operand is NaN, result is NaN + VAR1 = Number.NaN; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 += VAR2", Number.NaN, VAR1 += VAR2 ); + VAR1 = Number.NaN; VAR2=1; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 += VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.NaN; VAR2=0; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 += VAR2", Number.NaN, VAR1 += VAR2 ); + VAR1 = Number.NaN; VAR2=0; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 += VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = 0; VAR2=Number.NaN; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 += VAR2", Number.NaN, VAR1 += VAR2 ); + VAR1 = 0; VAR2=Number.NaN; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 += VAR2; VAR1", Number.NaN, VAR1 ); + + // the sum of two Infinities the same sign is the infinity of that sign + // the sum of two Infinities of opposite sign is NaN + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= Infinity; VAR1 += VAR2; VAR1", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= -Infinity; VAR1 += VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2= Infinity; VAR1 += VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2=-Infinity; VAR1 += VAR2; VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + + // the sum of an infinity and a finite value is equal to the infinite operand + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR1 += VAR2;VAR1", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR1 += VAR2;VAR1", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR1 += VAR2;VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR1 += VAR2;VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + + // the sum of two negative zeros is -0. the sum of two positive zeros, or of two zeros of opposite sign, is +0 + VAR1 = 0; VAR2 = 0; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= 0; VAR1 += VAR2", 0, VAR1 ); + VAR1 = 0; VAR2 = -0; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -0; VAR1 += VAR2", 0, VAR1 ); + VAR1 = -0; VAR2 = 0; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= 0; VAR1 += VAR2", 0, VAR1 ); + VAR1 = -0; VAR2 = -0; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -0; VAR1 += VAR2", -0, VAR1 ); + + // the sum of a zero and a nonzero finite value is eqal to the nonzero operand + VAR1 = 0; VAR2 = 1; VAR2 += VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= 1; VAR2 += VAR1; VAR2", 1, VAR2 ); + VAR1 = -0; VAR2 = 1; VAR2 += VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= 1; VAR2 += VAR1; VAR2", 1, VAR2 ); + VAR1 = -0; VAR2 = -1; VAR2 += VAR1; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -1; VAR2 += VAR1; VAR2", -1, VAR2 ); + VAR1 = 0; VAR2 = -1; VAR2 += VAR1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -1; VAR2 += VAR1; VAR2", -1, VAR2 ); + + // the sum of a zero and a nozero finite value is equal to the nonzero operand. + VAR1 = 0; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 += VAR2", 1, VAR1 += VAR2 ); + VAR1 = 0; VAR2=1; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=1; VAR1 += VAR2;VAR1", 1, VAR1 ); + + // the sum of two nonzero finite values of the same magnitude and opposite sign is +0 + VAR1 = Number.MAX_VALUE; VAR2= -Number.MAX_VALUE; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = Number.MAX_VALUE; VAR2= -Number.MAX_VALUE; VAR1 += VAR2; VAR1", 0, VAR1 ); + VAR1 = Number.MIN_VALUE; VAR2= -Number.MIN_VALUE; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = Number.MIN_VALUE; VAR2= -Number.MIN_VALUE; VAR1 += VAR2; VAR1", 0, VAR1 ); + +/* + VAR1 = 10; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = 10; VAR2 = '0XFF', VAR1 += VAR2", 2550, VAR1 += VAR2 ); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 += VAR2", 2550, VAR1 += VAR2 ); + VAR1 = '10'; VAR2 = '255'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '255', VAR1 += VAR2", 2550, VAR1 += VAR2 ); + VAR1 = '10'; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '0XFF', VAR1 += VAR2", 2550, VAR1 += VAR2 ); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 += VAR2", 2550, VAR1 += VAR2 ); + + // boolean cases + VAR1 = true; VAR2 = false; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = false; VAR1 += VAR2", 0, VAR1 += VAR2 ); + VAR1 = true; VAR2 = true; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = true; VAR1 += VAR2", 1, VAR1 += VAR2 ); + + // object cases + VAR1 = new Boolean(true); VAR2 = 10; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Boolean(true); VAR2 = 10; VAR1 += VAR2;VAR1", 10, VAR1 ); + VAR1 = new Number(11); VAR2 = 10; VAR1 += VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = 10; VAR1 += VAR2; VAR1", 110, VAR1 ); + VAR1 = new Number(11); VAR2 = new Number(10); + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = new Number(10); VAR1 += VAR2", 110, VAR1 += VAR2 ); + VAR1 = String('15'); VAR2 = new String('0xF'); + array[item++] = Assert.expectEq( "VAR1 = new String('15'); VAR2 = new String('0xF'); VAR1 += VAR2", 255, VAR1 += VAR2 ); + +*/ + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/output.txt new file mode 100644 index 000000000..09845d4fe --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/output.txt @@ -0,0 +1,26 @@ +VAR1 = NaN; VAR2=1; VAR1 += VAR2 PASSED! +VAR1 = NaN; VAR2=1; VAR1 += VAR2; VAR1 PASSED! +VAR1 = NaN; VAR2=0; VAR1 += VAR2 PASSED! +VAR1 = NaN; VAR2=0; VAR1 += VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 += VAR2 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 += VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= Infinity; VAR1 += VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= -Infinity; VAR1 += VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2= Infinity; VAR1 += VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2=-Infinity; VAR1 += VAR2; VAR1 PASSED! +VAR1 = 0; VAR2= Infinity; VAR1 += VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR1 += VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR1 += VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR1 += VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= 0; VAR1 += VAR2 PASSED! +VAR1 = 0; VAR2= -0; VAR1 += VAR2 PASSED! +VAR1 = -0; VAR2= 0; VAR1 += VAR2 PASSED! +VAR1 = -0; VAR2= -0; VAR1 += VAR2 PASSED! +VAR1 = 0; VAR2= 1; VAR2 += VAR1; VAR2 PASSED! +VAR1 = -0; VAR2= 1; VAR2 += VAR1; VAR2 PASSED! +VAR1 = -0; VAR2= -1; VAR2 += VAR1; VAR2 PASSED! +VAR1 = 0; VAR2= -1; VAR2 += VAR1; VAR2 PASSED! +VAR1 = 0; VAR2=1; VAR1 += VAR2 PASSED! +VAR1 = 0; VAR2=1; VAR1 += VAR2;VAR1 PASSED! +VAR1 = Number.MAX_VALUE; VAR2= -Number.MAX_VALUE; VAR1 += VAR2; VAR1 PASSED! +VAR1 = Number.MIN_VALUE; VAR2= -Number.MIN_VALUE; VAR1 += VAR2; VAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..d3d8b927057fa159b770cdcd73e38fbfc829a11a GIT binary patch literal 3479 zcmV;I4QTR1S5qdt8vp=!+Lf8ha~sEY#=9|(p2mZC5&*%6MiwlJ)DREKSGH)0Hbepv zZHbggN|x+P3Nzqe~x_d2b*johka&APd3Hmr6wpUDGgt1?$@ zwsv)EUfqZJX_oYQ+vMTpPQC6rp6{9Bp5AVYRlQc1?pw8bJ9Y+X2jzQ(wYB1+ zqB_U(a;dO%r??nZo#T1c;h9@=s^T<@U-PbutyZ(;+k-Q=R?T*&ZppXqtlTWz34YnM zPeI+THx0eM;k#E@__T1VcxP#CefYQbB&lfWd>ShE;okjjZZ1$*y>vLf5q5Ti$)VL^skmBPUT_?VRkLcg%tqym&AVDyzU5e= zt1z?9q?P-tOLj8M8iTzT9~AC5y%+cO`e4%cpt!nJdSs_#56o7r`ut4wc1t(xc0lhx zIcm9QGSnIvvA5M5oziL59JA?m?At%>!@H-q+9s#LZLR2Sv+dtDEjINQn2_vSBo$gM z{rP$R;5*X*CPcQdb|pKT%U#VHom$ydP4>MA#2ax z$baa>F5j^A#h){9^_ngBbDZ4UI5}=|?XPj(XmC{c-pbn2`qG2quWxr1aMxD*?d@l8Z+8a~hT(Vk+ui~B`XaKr-L&RZRb>mIdbifz zW!FKSQHvaCC+5_kraCJ#*ID)ca`EB4;=+1yQMFeqsA-#~>g+BudV8*KIlnX|S#TLm z*;&g-t+8c3TdC6C>YH%NU~npIN!4CFFtC7+4!Q<%gs+cM8}V zoFn)=!50XAm*7c)rwG1G@C?COf^!7t37#eR3c>FY{40X568t_$vqh;uuVK0?(uPRKM7k%^m`JlC zO^Nhtk+$G$+9Y6+K!*hON#H37Jfm@uCPg|YQolrhCy&bXYngsSXp2xEq2FRcQ-mJC z;XI*V6Z!&L7YKcq&`Cn42)#_`455DsQNJ>Qe&Qow4?lPW_0o&|IK}v8SJm# zM}&X;9bIBC$B+CvXC237mx8{s}E7)`VDz07`71hFDw9L5@+2#w>Ah&>ZXnZWq(LK`!m%%FoG(&*sF%}hC4%}u}5 zGbf5LwV6+2Xy;k`xZ9cj+k+opo|I>`0yBX%Q_dewS42Hyh>BRcBCz&*tUbj!Zq6Zr z%DdTtQWstk4H57+S#3FE10?`Tiqr#2P+{wQ8Zni(m0K?v64WmY3{Qp%S&?m;3^Zu> zXgtShGSGN-ptOgV4H@u@eZwOFBnp8N1|Z$9EZ7S7Zx*O09(&u4jTs8urka~ za~RyVvR|mf0CQA1U(Ot!23**%F$}Q#XXahMx$VF@Dvu+P)4I4lXUq>|*PnFN@vY*-R%9mQd8 zz=b7^B)}f_U?TtQT-_WtuBr%a!MH$&ocT$$v`^AFLu^VyL z1%wc6`m`skp+Tb#4X5nX8;K%R{`jQ(kEH_6di<_`^Rqnsh;zF^y% z>D*;jV0!Afw18ePGi!r?T#?F)P{ay7D@D&n2^yFQ_!HBJwW_yDw>_nja2vlfok2^| zCkVF4pRzsh9V7_oF5C#T44Y0w1i11WtXmkm7op?w%HfM2LN^hDNIe#2k$c@k?fK!! zAxliziLYWwH}RXp?stdUZx2ttv-8xBYk$JT#%ISXpJBMYiYSPZ?{=dpRqAJ9R>Pg_jqgwV^Qi&-ylq1 zA?Qxu)rWX|M}crifZq`3k8*4y92$b*ZLA%4tLrOkxC>88_qck0_Oo`lba)&s*h}@w0HE>=BSp|M>of`i~88+xOPb&-<;5< z^@+`Mnx>!IRJDw*0xT*KL2Mu8)E5=GtNm%|0dBwSrqM}SIxKzedBL{F+P9e9kMcw9 z&+x_L@}obld?AG5_Wd}(v4EZVbC&s%WxCp5U`AmZ<1`8e;o*RW&xXnD(doWmn_9S# zG0`K4p`+X}ya;|>-AIdvrA-gShx_7>`{MDwc)2g0=!@%p@nm1z=!=i^#VdXBR9}3n zFFq;=f;bHE>PB~n&9gM>mQ2r!AK3e9Y~U`B58UPIL(lk52*NbVe&E^v1Lk9B{2#Hm F|4u4w(z5^n literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_4/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/Test.as new file mode 100644 index 000000000..d102f4797 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/Test.as @@ -0,0 +1,117 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_13_2_5"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // If either operand is NaN, result is NaN + VAR1 = Number.NaN; VAR2=1; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 -= VAR2", Number.NaN, VAR1 -= VAR2 ); + VAR1 = Number.NaN; VAR2=1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=1; VAR1 -= VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.NaN; VAR2=0; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 -= VAR2", Number.NaN, VAR1 -= VAR2 ); + VAR1 = Number.NaN; VAR2=0; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = NaN; VAR2=0; VAR1 -= VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = 0; VAR2=Number.NaN; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 -= VAR2", Number.NaN, VAR1 -= VAR2 ); + VAR1 = 0; VAR2=Number.NaN; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=NaN; VAR1 -= VAR2; VAR1", Number.NaN, VAR1 ); + + // the sum of two Infinities the same sign is the infinity of that sign + // the sum of two Infinities of opposite sign is NaN + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= Infinity; VAR1 -= VAR2; VAR1", Number.NaN, VAR1 ); + VAR1 = Number.POSITIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Infinity; VAR2= -Infinity; VAR1 -= VAR2; VAR1", Number.POSITIVE_INFINITY, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.POSITIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2= Infinity; VAR1 -= VAR2; VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = Number.NEGATIVE_INFINITY; VAR2 = Number.NEGATIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 =-Infinity; VAR2=-Infinity; VAR1 -= VAR2; VAR1", Number.NaN, VAR1 ); + + // the sum of an infinity and a finite value is equal to the infinite operand + VAR1 = 0; VAR2 = Number.POSITIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= Infinity; VAR1 -= VAR2;VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = -0; VAR2 = Number.POSITIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= Infinity; VAR1 -= VAR2;VAR1", Number.NEGATIVE_INFINITY, VAR1 ); + VAR1 = 0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -Infinity; VAR1 -= VAR2;VAR1", Number.POSITIVE_INFINITY,VAR1 ); + VAR1 = -0; VAR2 = Number.NEGATIVE_INFINITY; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -Infinity; VAR1 -= VAR2;VAR1", Number.POSITIVE_INFINITY, VAR1 ); + + // the sum of two negative zeros is -0. the sum of two positive zeros, or of two zeros of opposite sign, is +0 + VAR1 = 0; VAR2 = 0; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -0; VAR1 -= VAR2", 0, VAR1 ); + VAR1 = 0; VAR2 = -0; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= 0; VAR1 -= VAR2", 0, VAR1 ); + VAR1 = -0; VAR2 = 0; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -0; VAR1 -= VAR2", 0, VAR1 ); + VAR1 = -0; VAR2 = -0; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= 0; VAR1 -= VAR2", -0, VAR1 ); + + // the sum of a zero and a nonzero finite value is eqal to the nonzero operand + VAR1 = 0; VAR2 = -1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= -1; VAR1 -= VAR2; VAR1", 1, VAR1 ); + VAR1 = -0; VAR2 = -1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= -1; VAR1 -= VAR2; VAR1", 1, VAR1 ); + VAR1 = -0; VAR2 = 1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = -0; VAR2= 1; VAR1 -= VAR2; VAR1", -1, VAR1 ); + VAR1 = 0; VAR2 = 1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2= 1; VAR1 -= VAR2; VAR1", -1, VAR1 ); + + // the sum of a zero and a nozero finite value is equal to the nonzero operand. + VAR1 = 0; VAR2=-1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=-1; VAR1 -= VAR2", 1, VAR1 ); + VAR1 = 0; VAR2=-1; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = 0; VAR2=-1; VAR1 -= VAR2;VAR1", 1, VAR1 ); + + // the sum of two nonzero finite values of the same magnitude and opposite sign is +0 + VAR1 = Number.MAX_VALUE; VAR2= Number.MAX_VALUE; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Number.MAX_VALUE; VAR2= Number.MAX_VALUE; VAR1 -= VAR2; VAR1", 0, VAR1 ); + VAR1 = Number.MIN_VALUE; VAR2= Number.MIN_VALUE; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = Number.MIN_VALUE; VAR2= Number.MIN_VALUE; VAR1 -= VAR2; VAR1", 0, VAR1 ); + + +/* + VAR1 = 10; VAR2 = '0XFF'; + array[item++] = Assert.expectEq( "VAR1 = 10; VAR2 = '0XFF', VAR1 -= VAR2", 2550, VAR1 -= VAR2 ); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 -= VAR2", 2550, VAR1 -= VAR2 ); + VAR1 = '10'; VAR2 = '255'; + array[item++] = Assert.expectEq( "VAR1 = '10'; VAR2 = '255', VAR1 -= VAR2", 2550, VAR1 -= VAR2 ); + VAR1 = '10'; VAR2 = '0XFF'; + array[item++] = new TestCas( SECTION, "VAR1 = '10'; VAR2 = '0XFF', VAR1 -= VAR2", 2550, VAR1 -= VAR2 ); + VAR1 = '0XFF'; VAR2 = 0XA; + array[item++] = Assert.expectEq( "VAR1 = '0xFF'; VAR2 = 0xA, VAR1 -= VAR2", 2550, VAR1 -= VAR2 ); + + // boolean cases + VAR1 = true; VAR2 = false; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = false; VAR1 -= VAR2", 0, VAR1 -= VAR2 ); + VAR1 = true; VAR2 = true; + array[item++] = Assert.expectEq( "VAR1 = true; VAR2 = true; VAR1 -= VAR2", 1, VAR1 -= VAR2 ); + + // object cases + VAR1 = new Boolean(true); VAR2 = 10; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Boolean(true); VAR2 = 10; VAR1 -= VAR2;VAR1", 10, VAR1 ); + VAR1 = new Number(11); VAR2 = 10; VAR1 -= VAR2; + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = 10; VAR1 -= VAR2; VAR1", 110, VAR1 ); + VAR1 = new Number(11); VAR2 = new Number(10); + array[item++] = Assert.expectEq( "VAR1 = new Number(11); VAR2 = new Number(10); VAR1 -= VAR2", 110, VAR1 -= VAR2 ); + VAR1 = String('15'); VAR2 = new String('0xF'); + array[item++] = Assert.expectEq( "VAR1 = new String('15'); VAR2 = new String('0xF'); VAR1 -= VAR2", 255, VAR1 -= VAR2 ); + +*/ + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/output.txt new file mode 100644 index 000000000..f4a683123 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/output.txt @@ -0,0 +1,26 @@ +VAR1 = NaN; VAR2=1; VAR1 -= VAR2 PASSED! +VAR1 = NaN; VAR2=1; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = NaN; VAR2=0; VAR1 -= VAR2 PASSED! +VAR1 = NaN; VAR2=0; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 -= VAR2 PASSED! +VAR1 = 0; VAR2=NaN; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= Infinity; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = Infinity; VAR2= -Infinity; VAR1 -= VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2= Infinity; VAR1 -= VAR2; VAR1 PASSED! +VAR1 =-Infinity; VAR2=-Infinity; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2= Infinity; VAR1 -= VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= Infinity; VAR1 -= VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= -Infinity; VAR1 -= VAR2;VAR1 PASSED! +VAR1 = -0; VAR2= -Infinity; VAR1 -= VAR2;VAR1 PASSED! +VAR1 = 0; VAR2= -0; VAR1 -= VAR2 PASSED! +VAR1 = 0; VAR2= 0; VAR1 -= VAR2 PASSED! +VAR1 = -0; VAR2= -0; VAR1 -= VAR2 PASSED! +VAR1 = -0; VAR2= 0; VAR1 -= VAR2 PASSED! +VAR1 = 0; VAR2= -1; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = -0; VAR2= -1; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = -0; VAR2= 1; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2= 1; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = 0; VAR2=-1; VAR1 -= VAR2 PASSED! +VAR1 = 0; VAR2=-1; VAR1 -= VAR2;VAR1 PASSED! +VAR1 = Number.MAX_VALUE; VAR2= Number.MAX_VALUE; VAR1 -= VAR2; VAR1 PASSED! +VAR1 = Number.MIN_VALUE; VAR2= Number.MIN_VALUE; VAR1 -= VAR2; VAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_13_2_5/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c9262e071edc64ab8cb8528da8da30dab3b6a7ea GIT binary patch literal 3465 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 r(x_W9JuiM_&#SS4yF5N{m#Ysw<2xZp( + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/output.txt new file mode 100644 index 000000000..759e69b59 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/output.txt @@ -0,0 +1,3 @@ +true, false PASSED! +VAR1=true, VAR2=false PASSED! +VAR1=true, VAR2=false;VAR1 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..8d30321878403f55d7f1e58cf7fafcabe6f4420f GIT binary patch literal 2502 zcmV;%2|4ydS5qdi4*&po+J#rmQya+@@1E(IR!ayZ5aJsTwiXN?B!PFmix#t%L9(&= z@CxwPE?SMG7HC&U%FGDkq*6(da;0+2!CRG_$R(FOlp#UwUvy}^y}aIz1Oe%y*DEc5cvl}oqt5AAETw<07B>&J^#cA&6~wiBD0j%4)!Wl zD*?0H6T7xuPsCy`Uc89DxEZaPJF%I$xw%+;Ha0su4UB2)Wz{wgrmNPqi3P{O61NIw zxo($hRZYx|e63;Mo|tHPEf&t5)*EKUaak zS^<^7B5F9+PF#*fJ5Siv8~IAv+U4fiIvcf;{lYL|!CIqQyjbdjD9j2bH|*N~H9DgS zlZsK@X&5_vfmgrU+Hln8kh25B<_ohQYY!R~Z8ko8(+yXE^Rf3b(Lx}(3ur0uFL@p< zO7Gsid+wDX`zm}%;G4hQgc?BT*S}i(-ETnpt9O%IHu_75`wOXIBmm>C>=h1l@X4xh4vxR;87i)Oy zhH3GZH%M#2u(;K+!);M|i(;ZUDN>TAX}lb3^}AaJP!O@?#?9DlJbo*dZZ)*on;uXiM zad9?8M5(y(uNwBQY~(HPTFq5jQIB17dswaT>W;muT8+GAo0$9B9)kX}UT{vkL!9%?TK^HrnOYdp`%D>UApFWQfnU5w$@TlAEg#I zQ%jmtU0`EzuDMTxs9`1A+VA?LV#6_V)vY~Rt`_;hdWoHPOP^~7!D;a3(9UuHrG^{2 z%(|qbt$J20=wZ&>Ljq<`7>7OmH0VN1%NKGM%gB1yOdp{>;uXsD4V4024&Nfl_~4+jG`a8WGuA?Nk$SOFcW_c+J0~G zupl_M^NYZzbxD#icHWNv`zA?}(jJ6L8LW;xj47y7^kqr6)2vEa=P*qp)5WK`A zco(B7L#9p6z96w%0Fq2`*ZXL%t%CUIvW<2*{ zJoiyNcPpOzIG&^N+$T@bha?Fx#yU>~;gJ zD2hz}j*sJ~r#&HrPG9TyLmq_m<-@lDs1*Id;oD|YXqp$AH!aN@9Um4*^K@`os83&i z_w7{ob%Z8?`tZA{ZukK<3I0~Tn+gV9@eFMW^xJL*URJ?F0IEx06M_!HItZ@W1-H8g zp`^9nm2_!7e@yQxvaQZfSCCEYs{)k7(Er5|Q zl-56!w(o#|#RR@2f`n8`rteDWJMw*ebt;M$l_dndm=evFMzRcfgm%0S)s3hOC%-M0 zh0whSo#d8}Ui}cbix42|p`bt>G>`Nzk4}$-V$xBphWgJG+egjUM|$??^tGdB4z7PC zCfg5B)*oU>uZPG)@g2vv@0^S`MN|l}3uvMRc`qQX1^E<(C?P0|=J&00)>oZ#23?0N z5v2p@4@J!GLjE@FK@01|m?-Dv+Xdw-cb%2*%2PbD>j5|*!^3LqI4(La&8SKf>1A zW(1u^l%w?L(ks#8dLa~m0?g>e@sr%f_v@Q-Amn6&hdLa*1o)P~oBED$AUZvQy1Jk* zK=3(!RM9m}81pKeVTedF2^_~yA}IH`^dv%#(oZG8d)x45ZFsm1f8K`owc%g1;r(s+ zmu>h!8@}C!54PdiHhf5yWzq|H=}EIwlvo5c(_cxieh`nU;Y$e~xs>4CQ)y&305Izj QFA?Xzt~((77m-Z#_9OM~ivR!s literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_14_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/Test.as new file mode 100644 index 000000000..248adeb1e --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/Test.as @@ -0,0 +1,77 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.1.1"; +// var VERSION = "ECMA_1"; + + + var testcases = getTestCases(); + +function getTestCases(){ + var array = new Array(); + var item = 0; + + var GLOBAL_OBJECT = this.toString(); + + // this in global code should return the global object. + + array[item++] = Assert.expectEq( + "Global Code: this.toString()", + GLOBAL_OBJECT, + this.toString() ); + + // this in anonymous code called as a function should return the global object. + + // will work in spidermonkey but will fail in FP7, no compiler error + var MYFUNC = function(){return this.toString()} + array[item++] = Assert.expectEq( + "Anonymous Code: var MYFUNC = new Function('return this.toString()'); MYFUNC()", + GLOBAL_OBJECT, + MYFUNC() ); + + // thisin anonymous code called as a function should return that function's activation object + var MYFUNC = function(){return this.toString();} + + array[item++] = Assert.expectEq( + "Anonymous Code: var MYFUNC = function(){return this.toString;}", + GLOBAL_OBJECT, + (MYFUNC()).toString() ); + + // this in anonymous code called as a constructor should return the object + var MYFUNC = function(){this.THIS = this} + array[item++] = Assert.expectEq( + "Anonymous Code: var MYFUNC = new Function('this.THIS = this'); ((new MYFUNC()).THIS).toString()", + "[object Object]", + ((new MYFUNC()).THIS).toString() ); + + var MYFUNC = function(){this.THIS = this} + var FUN1 = new MYFUNC(); + array[item++] = Assert.expectEq( + "Anonymous Code: var MYFUNC = new Function('this.THIS = this'); var FUN1 = new MYFUNC(); FUN1.THIS == FUN1", + true, + FUN1.THIS == FUN1 ); + + // this in function code called as a function should return the global object. + array[item++] = Assert.expectEq( + "Function Code: ReturnThis()", + GLOBAL_OBJECT, + ReturnThis() ); + + // this in function code called as a contructor should return the object. + var MYOBJECT = new ReturnThis(); + array[item++] = Assert.expectEq( + "var MYOBJECT = new ReturnThis(); MYOBJECT.toString()", + "[object Object]", + MYOBJECT.toString() ); + return array; +} + + +function ReturnThis() { + return this.toString(); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/output.txt new file mode 100644 index 000000000..54af364d1 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/output.txt @@ -0,0 +1,7 @@ +Global Code: this.toString() PASSED! +Anonymous Code: var MYFUNC = new Function('return this.toString()'); MYFUNC() PASSED! +Anonymous Code: var MYFUNC = function(){return this.toString;} PASSED! +Anonymous Code: var MYFUNC = new Function('this.THIS = this'); ((new MYFUNC()).THIS).toString() PASSED! +Anonymous Code: var MYFUNC = new Function('this.THIS = this'); var FUN1 = new MYFUNC(); FUN1.THIS == FUN1 PASSED! +Function Code: ReturnThis() PASSED! +var MYOBJECT = new ReturnThis(); MYOBJECT.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..74998427bcc3984a98f0532657b06f7ad717cfa5 GIT binary patch literal 2872 zcmV-83&-?BS5qcQ6952s+ND^{Qya+@@1C!omJmoFzQG=B)*w6}fxREbn6(TN;5FbC z;ICakBdG=2)z{99z|PjzR#D|cPN_Y3tCADB^7aAYbxH8lT9-#=9S8Hw zN}IW|ohubJJ~mRNihXNjr0zA7K5<&En0d!#CLLyZR$xWj3QtZ1&I$JUehCOSP z%lTZ|;O@dt$F1E``s;mTkBw*ZhP68rJ~iYVJ7?$FY_x2ocbOK?v!`10la42SLHgHvuyOI;J^I{aZT1V3TzVj(F6>H z#XtPK!FeNzt|GtH9eEyK+11hXo6TUofbdMA3X?TeB#1#Kr^N*Vc0@BQf9XVHb&y`{DF z&TpOCNbAFs!@%5wE&FbI+80eMY%IrC)?{@(4%Qu7#%} zk&nWuN-l5biqiVx(wZDKP2<_Xg0r34Tq(n*H574g461rI@jD}`^)?2pWDfI38T;2R``+rErq4G(BhRZyS z(NS*GNG9Z{Lrtlk6u5g-H*^1IJZ=uglXc@p;F}IuH@@Wz1{#j)fwa@D9SvP~!>-=B z8=G6N`)bzTJW)2yMK<`}N;#VqeD3kxc5M_l4T*c7prP zbkF{?R%dji-kf9$8Zx8qB7tQ`7w%GfNSCL_*V8E@8L79rR=Tl_x;=e9K9*5mCl#?u zC4R|p6TB*E!IF>4t+Ml!+OU_ZejETJ?}o?#FZ*6LpcOOGLd()X#`| zkEqMUvr2^fMEINt2_mdfD$*O6eksvSi4I6~MxsH9h9%l3(QSz)VNM3|rHC(0d>P_n z#FwRA677-bO^LS1^lPPGq1y^A5Sk>^OK6eMK0?cc4iUOds72^yLO&pMgwPP7R|y>_ z)F!k=y^P-f5zYf57U~Z{M1mv6mZbmJZ*g1#3L)NmhE;3eD->|s0rv991jq@q!L0Z}xDFCq`pv4*^8 z0uKemo=X9#_i{k)8xAP_9|Xw2m4G@p5}+4G1D=bafLD`LNs%xbFf?>fkQmyG+>M}v0%m9!9s)z$;Xy%UC=Xa(sEqw^z|hr#@Vb_q)NcbMa*Ozs zIQGW4cC3mahHhiW)j7hOV<1F10WK*MbvS9sxR!#+bC&QvR$59)z`N7TbHk-&pvtPu zsp5O7a!Lm3oIcNqcThImU@E{=RE0Aohv^y|6y$fEC@BS;#I67;XT$vd((ysS2T@7r zT?R=JV8nUGo7dyl-H3L zW%4mElTUb=+<;O<)BJaYf-&`o)d=h@!Pw(fs*&mvf{_Z-nS6q!8A9n;1I)0(A2URHGje|FSNKSun@TOMdn%b%6bzSpX#|LStcHFnb)yFSh z{y5e?icknlAHE!GhZ%*y-=mjffq*ME&>Ba7Y^UJmF?jI90_ab;po8!Q2rli^w!H(P zk*}--4pS8m||e7oj9W{t<+#k(3m9f}k+RB3C(q33(ikq37I~%V0mK%E>s8I8j(# z5H=So{EU5eio;)~)UzBD$0K9lbu=#|U78Lq&&Mym+g<$b>8Eh4P^CJzg# zdk{KGet!7;mH!SxfP4`Qa3oPX)OQY#54j@bC>{rU8j9V++KWRycX<55(NhQ4zv6?< zwWHNF4BP9IL`n8mBb$pyS86;fgj!Fbkvi0N3Tbu7FUyh~gtDmpR9|QPv9r#g3y6Xw zw}AN?&)E&s-h?IUSO>%|M%Pxi-feVm_2|7u&sMLl8NFM5 z`X!@pt6v{B`nLx3E5^Xqpgw90Ze7sFj0;;Ab=|nQrRfuf2F`k9B1*+-M0=iAYI;8Y z2wQJz!{~TeK8!yWp7R!_7lZIKKKVp1T{%jA@zd&;qCe>DMmgBx;NJkg$?=+QatFM5 z4WqU;I2Ryz9X|>`HMQrwCBYi@N`ff)tC6E&l-$a04@-yfqyTtd6K*u&{Y`kP2_I;} z(@pqb6P{_pFErt-3BTBcXPaOGN=dX@HIdo=&FP+)o-ABUU WuAeua4*rsN{vC1~g#Q5ld*jouhMLF# literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/Test.as new file mode 100644 index 000000000..fea4f5dab --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/Test.as @@ -0,0 +1,201 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "11.1.4"; +// var VERSION = "ECMA_1"; +// var TITLE = "Array Initialiser"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + Array_One = [] + + + + array[item++] = Assert.expectEq( + "typeof Array_One", + "object", + typeof Array_One ); + + array[item++] = Assert.expectEq( + "Array_One=[]; Array_One.getClass = Object.prototype.toString; Array_One.getClass()", + "[object Array]", + (Array_One.getClass = Object.prototype.toString, Array_One.getClass() ) ); + + array[item++] = Assert.expectEq( + "Array_One = []; Array_One.toString == Array.prototype.toString", + true, + (Array_One.toString == Array.prototype.toString ) ); + + array[item++] = Assert.expectEq( + "Array_One.length", + 0, + Array_One.length ); + + Array_Two = [1,2,3] + + + array[item++] = Assert.expectEq( + "Array_Two", + "1,2,3", + Array_Two+"" ); + + + + array[item++] = Assert.expectEq( + "typeof Array_Two", + "object", + typeof Array_Two); + + array[item++] = Assert.expectEq( + "Array_Two=[1,2,3]; arr.getClass = Object.prototype.toString; arr.getClass()", + "[object Array]", + (Array_Two.getClass = Object.prototype.toString, Array_Two.getClass() ) ); + + array[item++] = Assert.expectEq( + "Array_Two.toString == Array.prototype.toString", + true, + (Array_Two.toString == Array.prototype.toString ) ); + + array[item++] = Assert.expectEq( + "Array_Two.length", + 3, + Array_Two.length ); + + Array_Three = [12345] + + array[item++] = Assert.expectEq( + "typeof Array_Three", + "object", + typeof Array_Three ); + + array[item++] = Assert.expectEq( + "Array_Three=[12345]; Array_Three.getClass = Object.prototype.toString; Array_Three.getClass()", + "[object Array]", + (Array_Three.getClass = Object.prototype.toString, Array_Three.getClass() ) ); + + Array_Four = [1,2,3,4,5] + + array[item++] = Assert.expectEq( + "Array_Four.toString == Array.prototype.toString", + true, + (Array_Four.toString == Array.prototype.toString ) ); + + Array_Five = [,2,3,4,5] + + array[item++] = Assert.expectEq( + "Array_Five.length", + 5, + Array_Five.length ); + + array[item++] = Assert.expectEq( + "Array_Five[1]", + 2, + Array_Five[1] ); + + Array_Six = [1,2,3,4,5,6,7,8,9,10,11,12,13,,15,16,17,18,19,20,21,22,23,24,25] + + array[item++] = Assert.expectEq( + "Array_Six.length", + 25, + Array_Six.length ); + + array[item++] = Assert.expectEq( + "Array_Six[14]", + 15, + Array_Six[14] ); + + Array_Seven = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,] + + array[item++] = Assert.expectEq( + "Array_Seven.length", + 32, + Array_Seven.length ); + Array_Eight=[,,,,,,,,,,,,,,,] + + array[item++] = Assert.expectEq( + "Array_Eight.length", + 15, + Array_Eight.length ); + + Array_Nine = [,2,3,4,5,6,7,8,9,10,11,,13,14,15,16,17,18,19,,21,22,23,24,25,26,27,28,29,30,31,32,] + + array[item++] = Assert.expectEq( + "Array_Nine.length", + 32, + Array_Nine.length ); + + array[item++] = Assert.expectEq( + "Array_Nine[1]", + 2, + Array_Nine[1] ); + + array[item++] = Assert.expectEq( + "Array_Nine[0]", + undefined, + Array_Nine[0] ); + + array[item++] = Assert.expectEq( + "Array_Nine[11]", + undefined, + Array_Nine[11] ); + + array[item++] = Assert.expectEq( + "Array_Nine[12]", + 13, + Array_Nine[12] ); + + array[item++] = Assert.expectEq( + "Array_Nine[19]", + undefined, + Array_Nine[19] ); + + array[item++] = Assert.expectEq( + "Array_Nine[20]", + 21, + Array_Nine[20] ); + + array[item++] = Assert.expectEq( + "Array_Nine[32]", + undefined, + Array_Nine[32] ); + + var Array_Ten:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; + + array[item++] = Assert.expectEq( + "Multi dimensional array", + 6, + Array_Ten[1][2] ); + + var obj = new Object(); + obj.prop1 = "Good"; + obj.prop2 = "one"; + for (j in obj){ + + var myvar = obj[j]; + if (myvar=="one"){ + break; + } + //print(myvar); + } + + array[item++] = Assert.expectEq( "Using array initializers to dynamically set and retrieve values of an object","one",myvar ); + + + + + + + return ( array ); +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/output.txt new file mode 100644 index 000000000..82e095308 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/output.txt @@ -0,0 +1,28 @@ +typeof Array_One PASSED! +Array_One=[]; Array_One.getClass = Object.prototype.toString; Array_One.getClass() PASSED! +Array_One = []; Array_One.toString == Array.prototype.toString PASSED! +Array_One.length PASSED! +Array_Two PASSED! +typeof Array_Two PASSED! +Array_Two=[1,2,3]; arr.getClass = Object.prototype.toString; arr.getClass() PASSED! +Array_Two.toString == Array.prototype.toString PASSED! +Array_Two.length PASSED! +typeof Array_Three PASSED! +Array_Three=[12345]; Array_Three.getClass = Object.prototype.toString; Array_Three.getClass() PASSED! +Array_Four.toString == Array.prototype.toString PASSED! +Array_Five.length PASSED! +Array_Five[1] PASSED! +Array_Six.length PASSED! +Array_Six[14] PASSED! +Array_Seven.length PASSED! +Array_Eight.length PASSED! +Array_Nine.length PASSED! +Array_Nine[1] PASSED! +Array_Nine[0] PASSED! +Array_Nine[11] PASSED! +Array_Nine[12] PASSED! +Array_Nine[19] PASSED! +Array_Nine[20] PASSED! +Array_Nine[32] PASSED! +Multi dimensional array PASSED! +Using array initializers to dynamically set and retrieve values of an object PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..109d423fdaa4a4c7399c5248c16d246e00a4817d GIT binary patch literal 3617 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_4/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/Test.as new file mode 100644 index 000000000..a38f60b74 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/Test.as @@ -0,0 +1,94 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.1.5"; +// var VERSION = "ECMA_4"; +// var TITLE = "Object Initialisers"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + MyObject = {} + array[item++] = Assert.expectEq( "MyObject = {}", "[object Object]", MyObject.toString() ); + + array[item++] = Assert.expectEq( "MyObject = {}, typeof MyObject","object",typeof MyObject ); + + MyNumberObject = {MyNumber:10} + + array[item++] = Assert.expectEq( "MyNumberObject = {MyNumber:10}",10,MyNumberObject.MyNumber ); + + MyStringObject = {MyString:"string"} + + array[item++] = Assert.expectEq( "MyStringObject = {MyString:string}","string",MyStringObject.MyString ); + + MyBooleanObject = {MyBoolean:true} + + array[item++] = Assert.expectEq( "MyBooleanObject = {MyBoolean:true}",true,MyBooleanObject.MyBoolean ); + + function myfunc():String{ + return "Hi!!!"} + + MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}",10,MyObject2.MyNumber ); + + + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","string",MyObject2.MyString ); + + + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}",true,MyObject2.MyBoolean ); + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","number",typeof MyObject2.MyNumber ); + + + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","string",typeof MyObject2.MyString ); + + + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","boolean",typeof MyObject2.MyBoolean ); + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}",3,MyObject2.myarr.length ); + + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","object",typeof MyObject2.myarr ); + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","Hi!!!",MyObject2.myfuncvar() ); + + array[item++] = Assert.expectEq( "MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc}","function",typeof MyObject2.myfuncvar ); + + + MyObject3 = {myvar:this} + + array[item++] = Assert.expectEq( "MyObject3 = {this}","object",typeof MyObject3.myvar); + + array[item++] = Assert.expectEq( "MyObject3 = {this}","[object global]",MyObject3.myvar+""); + + MyObject4 = {myvar:function() {}} + + array[item++] = Assert.expectEq( "MyObject4 = {myvar:function() {}}","function",typeof MyObject4.myvar); + + array[item++] = Assert.expectEq( "MyObject4 = {myvar:function() {}}","function Function() {}",MyObject4.myvar+""); + + array[item++] = Assert.expectEq( "MyObject4 = {myvar:function() {}}","function Function() {}",MyObject4.myvar.toString()); + + + + + return ( array ); +} + +function MyObject( value ) { + this.value = function() {return this.value;} + this.toString = function() {return this.value+'';} +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/output.txt new file mode 100644 index 000000000..511d93f58 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/output.txt @@ -0,0 +1,20 @@ +MyObject = {} PASSED! +MyObject = {}, typeof MyObject PASSED! +MyNumberObject = {MyNumber:10} PASSED! +MyStringObject = {MyString:string} PASSED! +MyBooleanObject = {MyBoolean:true} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} PASSED! +MyObject3 = {this} PASSED! +MyObject3 = {this} PASSED! +MyObject4 = {myvar:function() {}} PASSED! +MyObject4 = {myvar:function() {}} PASSED! +MyObject4 = {myvar:function() {}} PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4dfc8421a1e21b8ed4c82f5444fa492e37849a90 GIT binary patch literal 3230 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_5/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/Test.as new file mode 100644 index 000000000..d10f40a97 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/Test.as @@ -0,0 +1,125 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.1.6"; +// var VERSION = "ECMA_4"; +// var TITLE = "The Grouping Operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "typeof(new Object())","object",typeof(new Object())); + + array[item++] = Assert.expectEq( "typeof(new Array())","object",typeof(new Array())); + + array[item++] = Assert.expectEq( "typeof(new Date())","object",typeof(new Date())); + + array[item++] = Assert.expectEq( "typeof(new Boolean())","boolean",typeof(new Boolean())); + + array[item++] = Assert.expectEq( "typeof(new String())","string",typeof(new String())); + + array[item++] = Assert.expectEq( "typeof(new Number())","number",typeof(new Number())); + + array[item++] = Assert.expectEq( "typeof(Math)","object",typeof(Math)); + + array[item++] = Assert.expectEq( "typeof(function(){})","function",typeof(function(){})); + + array[item++] = Assert.expectEq( "typeof(this)","object",typeof(this)); + + var MyVar:Number=10; + + array[item++] = Assert.expectEq( "typeof(MyVar)","number",typeof(MyVar)); + + array[item++] = Assert.expectEq( "typeof([])","object",typeof([])); + + array[item++] = Assert.expectEq( "typeof({})","object",typeof({})); + + array[item++] = Assert.expectEq( "typeof('')","string",typeof('')); + + var MyArray = new Array(1,2,3); + + delete(MyArray[0]) + + array[item++] = Assert.expectEq( "delete(MyArray[0]);MyArray[0]",undefined,MyArray[0]); + + Number.prototype.foo=10; + + delete(Number.prototype.foo); + + array[item++] = Assert.expectEq( "delete(Number.prototype.foo);",undefined,Number.prototype.foo); + + String.prototype.goo = 'hi'; + + delete(String.prototype.goo); + + array[item++] = Assert.expectEq( "delete(String.prototype.goo);",undefined,String.prototype.goo); + + Date.prototype.mydate=new Date(0); + + delete(Date.prototype.mydate); + + array[item++] = Assert.expectEq( "delete(Date.prototype.mydate);",undefined,Date.prototype.mydate); + + + + array[item++] = Assert.expectEq( "delete(new String('hi'));",true,delete(new String('hi'))); + + array[item++] = Assert.expectEq( "delete(new Date(0));",true,delete(new Date(0))); + + array[item++] = Assert.expectEq( "delete(new Number(10));",true,delete(new Number(10))); + + array[item++] = Assert.expectEq( "delete(new Object());",true,delete(new Object())); + + var obj = new Object(); + + array[item++] = Assert.expectEq( "delete(obj) Trying to delete an object of reference type should return false",false,delete(obj)); + + var a:Number = 10; + var b:Number = 20; + var c:Number = 30; + var d:Number = 40; + + /*Grouping operators are used to change the normal hierarchy of the mathematical operators, expressions inside paranthesis are calculated first before any other expressions are calculated*/ + + array[item++] = Assert.expectEq( "Grouping operator used in defining the hierarchy of the operators",true,(a+b*c+d)!=((a+b)*(c+d))); + +//Grouping operators are used when passing parameters through a function + + function myfunction(a):Number{ + return a*a; + } + + array[item++] = Assert.expectEq( "Grouping operator used in passing parameters to a function",4,myfunction(2)); + + var a:Number = 1; + var b:Number = 2; + function foo() { a += b; } + function bar() { b *= 10; } + + array[item++] = Assert.expectEq( "Grouping operator used in evaluating functions and returning the results of an expression",23,(foo(), bar(), a + b)); + + + + + + + + + + + return ( array ); +} + +function MyObject( value ) { + this.value = function() {return this.value;} + this.toString = function() {return this.value+'';} +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/output.txt new file mode 100644 index 000000000..5a03a6819 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/output.txt @@ -0,0 +1,25 @@ +typeof(new Object()) PASSED! +typeof(new Array()) PASSED! +typeof(new Date()) PASSED! +typeof(new Boolean()) PASSED! +typeof(new String()) PASSED! +typeof(new Number()) PASSED! +typeof(Math) PASSED! +typeof(function(){}) PASSED! +typeof(this) PASSED! +typeof(MyVar) PASSED! +typeof([]) PASSED! +typeof({}) PASSED! +typeof('') PASSED! +delete(MyArray[0]);MyArray[0] PASSED! +delete(Number.prototype.foo); PASSED! +delete(String.prototype.goo); PASSED! +delete(Date.prototype.mydate); PASSED! +delete(new String('hi')); PASSED! +delete(new Date(0)); PASSED! +delete(new Number(10)); PASSED! +delete(new Object()); PASSED! +delete(obj) Trying to delete an object of reference type should return false PASSED! +Grouping operator used in defining the hierarchy of the operators PASSED! +Grouping operator used in passing parameters to a function PASSED! +Grouping operator used in evaluating functions and returning the results of an expression PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_1_6/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..f089a92453822bcb7c4bcfb6f11e8ef29b8c962f GIT binary patch literal 3670 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 o75DO|eNdh|w# + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/output.txt new file mode 100644 index 000000000..7aa573ac0 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/output.txt @@ -0,0 +1,254 @@ +typeof this.NaN PASSED! +typeof this['NaN'] PASSED! +typeof this.Infinity PASSED! +typeof this['Infinity'] PASSED! +typeof this.parseInt PASSED! +typeof this['parseInt'] PASSED! +typeof this.parseFloat PASSED! +typeof this['parseFloat'] PASSED! +typeof this.escape PASSED! +typeof this['escape'] PASSED! +typeof this.unescape PASSED! +typeof this['unescape'] PASSED! +typeof this.isNaN PASSED! +typeof this['isNaN'] PASSED! +typeof this.isFinite PASSED! +typeof this['isFinite'] PASSED! +typeof this.Object PASSED! +typeof this['Object'] PASSED! +typeof this.Number PASSED! +typeof this['Number'] PASSED! +typeof this.Function PASSED! +typeof this['Function'] PASSED! +typeof this.Array PASSED! +typeof this['Array'] PASSED! +typeof this.String PASSED! +typeof this['String'] PASSED! +typeof this.Boolean PASSED! +typeof this['Boolean'] PASSED! +typeof this.Date PASSED! +typeof this['Date'] PASSED! +typeof this.Math PASSED! +typeof this['Math'] PASSED! +typeof Object.prototype PASSED! +typeof Object['prototype'] PASSED! +typeof Object.toString PASSED! +typeof Object['toString'] PASSED! +typeof Object.valueOf PASSED! +typeof Object['valueOf'] PASSED! +typeof Object.constructor PASSED! +typeof Object['constructor'] PASSED! +typeof Function.prototype PASSED! +typeof Function['prototype'] PASSED! +typeof Function.prototype.toString PASSED! +typeof Function.prototype['toString'] PASSED! +typeof Function.prototype.length PASSED! +typeof Function.prototype['length'] PASSED! +typeof Function.prototype.valueOf PASSED! +typeof Function.prototype['valueOf'] PASSED! +typeof Function.prototype.myProperty PASSED! +typeof Function.prototype['myProperty'] PASSED! +typeof Array.prototype PASSED! +typeof Array['prototype'] PASSED! +typeof Array.length PASSED! +typeof Array['length'] PASSED! +typeof Array.prototype.constructor PASSED! +typeof Array.prototype['constructor'] PASSED! +typeof Array.prototype.toString PASSED! +typeof Array.prototype['toString'] PASSED! +typeof Array.prototype.join PASSED! +typeof Array.prototype['join'] PASSED! +typeof Array.prototype.reverse PASSED! +typeof Array.prototype['reverse'] PASSED! +typeof Array.prototype.sort PASSED! +typeof Array.prototype['sort'] PASSED! +typeof String.prototype PASSED! +typeof String['prototype'] PASSED! +typeof String.fromCharCode PASSED! +typeof String['fromCharCode'] PASSED! +typeof String.prototype.toString PASSED! +typeof String.prototype['toString'] PASSED! +typeof String.prototype.constructor PASSED! +typeof String.prototype['constructor'] PASSED! +typeof String.prototype.valueOf PASSED! +typeof String.prototype['valueOf'] PASSED! +typeof String.prototype.charAt PASSED! +typeof String.prototype['charAt'] PASSED! +typeof String.prototype.charCodeAt PASSED! +typeof String.prototype['charCodeAt'] PASSED! +typeof String.prototype.indexOf PASSED! +typeof String.prototype['indexOf'] PASSED! +typeof String.prototype.lastIndexOf PASSED! +typeof String.prototype['lastIndexOf'] PASSED! +typeof String.prototype.split PASSED! +typeof String.prototype['split'] PASSED! +typeof String.prototype.substring PASSED! +typeof String.prototype['substring'] PASSED! +typeof String.prototype.toLowerCase PASSED! +typeof String.prototype['toLowerCase'] PASSED! +typeof String.prototype.toUpperCase PASSED! +typeof String.prototype['toUpperCase'] PASSED! +typeof String.prototype.length PASSED! +typeof String.prototype['length'] PASSED! +typeof Boolean.prototype PASSED! +typeof Boolean['prototype'] PASSED! +typeof Boolean.constructor PASSED! +typeof Boolean['constructor'] PASSED! +typeof Boolean.prototype.valueOf PASSED! +typeof Boolean.prototype['valueOf'] PASSED! +typeof Boolean.prototype.toString PASSED! +typeof Boolean.prototype['toString'] PASSED! +typeof Number.MAX_VALUE PASSED! +typeof Number['MAX_VALUE'] PASSED! +typeof Number.MIN_VALUE PASSED! +typeof Number['MIN_VALUE'] PASSED! +typeof Number.NaN PASSED! +typeof Number['NaN'] PASSED! +typeof Number.NEGATIVE_INFINITY PASSED! +typeof Number['NEGATIVE_INFINITY'] PASSED! +typeof Number.POSITIVE_INFINITY PASSED! +typeof Number['POSITIVE_INFINITY'] PASSED! +typeof Number.prototype.toString PASSED! +typeof Number.prototype['toString'] PASSED! +typeof Number.prototype.constructor PASSED! +typeof Number.prototype['constructor'] PASSED! +typeof Number.prototype.valueOf PASSED! +typeof Number.prototype['valueOf'] PASSED! +typeof Math.E PASSED! +typeof Math['E'] PASSED! +typeof Math.LN10 PASSED! +typeof Math['LN10'] PASSED! +typeof Math.LN2 PASSED! +typeof Math['LN2'] PASSED! +typeof Math.LOG2E PASSED! +typeof Math['LOG2E'] PASSED! +typeof Math.LOG10E PASSED! +typeof Math['LOG10E'] PASSED! +typeof Math.PI PASSED! +typeof Math['PI'] PASSED! +typeof Math.SQRT1_2 PASSED! +typeof Math['SQRT1_2'] PASSED! +typeof Math.SQRT2 PASSED! +typeof Math['SQRT2'] PASSED! +typeof Math.abs PASSED! +typeof Math['abs'] PASSED! +typeof Math.acos PASSED! +typeof Math['acos'] PASSED! +typeof Math.asin PASSED! +typeof Math['asin'] PASSED! +typeof Math.atan PASSED! +typeof Math['atan'] PASSED! +typeof Math.atan2 PASSED! +typeof Math['atan2'] PASSED! +typeof Math.ceil PASSED! +typeof Math['ceil'] PASSED! +typeof Math.cos PASSED! +typeof Math['cos'] PASSED! +typeof Math.exp PASSED! +typeof Math['exp'] PASSED! +typeof Math.floor PASSED! +typeof Math['floor'] PASSED! +typeof Math.log PASSED! +typeof Math['log'] PASSED! +typeof Math.max PASSED! +typeof Math['max'] PASSED! +typeof Math.min PASSED! +typeof Math['min'] PASSED! +typeof Math.pow PASSED! +typeof Math['pow'] PASSED! +typeof Math.random PASSED! +typeof Math['random'] PASSED! +typeof Math.round PASSED! +typeof Math['round'] PASSED! +typeof Math.sin PASSED! +typeof Math['sin'] PASSED! +typeof Math.sqrt PASSED! +typeof Math['sqrt'] PASSED! +typeof Math.tan PASSED! +typeof Math['tan'] PASSED! +typeof Date.parse PASSED! +typeof Date['parse'] PASSED! +typeof Date.prototype PASSED! +typeof Date['prototype'] PASSED! +typeof Date.UTC PASSED! +typeof Date['UTC'] PASSED! +typeof Date.prototype.constructor PASSED! +typeof Date.prototype['constructor'] PASSED! +typeof Date.prototype.toString PASSED! +typeof Date.prototype['toString'] PASSED! +typeof Date.prototype.valueOf PASSED! +typeof Date.prototype['valueOf'] PASSED! +typeof Date.prototype.getTime PASSED! +typeof Date.prototype['getTime'] PASSED! +typeof Date.prototype.getYear PASSED! +typeof Date.prototype['getYear'] PASSED! +typeof Date.prototype.getFullYear PASSED! +typeof Date.prototype['getFullYear'] PASSED! +typeof Date.prototype.getUTCFullYear PASSED! +typeof Date.prototype['getUTCFullYear'] PASSED! +typeof Date.prototype.getMonth PASSED! +typeof Date.prototype['getMonth'] PASSED! +typeof Date.prototype.getUTCMonth PASSED! +typeof Date.prototype['getUTCMonth'] PASSED! +typeof Date.prototype.getDate PASSED! +typeof Date.prototype['getDate'] PASSED! +typeof Date.prototype.getUTCDate PASSED! +typeof Date.prototype['getUTCDate'] PASSED! +typeof Date.prototype.getDay PASSED! +typeof Date.prototype['getDay'] PASSED! +typeof Date.prototype.getUTCDay PASSED! +typeof Date.prototype['getUTCDay'] PASSED! +typeof Date.prototype.getHours PASSED! +typeof Date.prototype['getHours'] PASSED! +typeof Date.prototype.getUTCHours PASSED! +typeof Date.prototype['getUTCHours'] PASSED! +typeof Date.prototype.getMinutes PASSED! +typeof Date.prototype['getMinutes'] PASSED! +typeof Date.prototype.getUTCMinutes PASSED! +typeof Date.prototype['getUTCMinutes'] PASSED! +typeof Date.prototype.getSeconds PASSED! +typeof Date.prototype['getSeconds'] PASSED! +typeof Date.prototype.getUTCSeconds PASSED! +typeof Date.prototype['getUTCSeconds'] PASSED! +typeof Date.prototype.getMilliseconds PASSED! +typeof Date.prototype['getMilliseconds'] PASSED! +typeof Date.prototype.getUTCMilliseconds PASSED! +typeof Date.prototype['getUTCMilliseconds'] PASSED! +typeof Date.prototype.setTime PASSED! +typeof Date.prototype['setTime'] PASSED! +typeof Date.prototype.setMilliseconds PASSED! +typeof Date.prototype['setMilliseconds'] PASSED! +typeof Date.prototype.setUTCMilliseconds PASSED! +typeof Date.prototype['setUTCMilliseconds'] PASSED! +typeof Date.prototype.setSeconds PASSED! +typeof Date.prototype['setSeconds'] PASSED! +typeof Date.prototype.setUTCSeconds PASSED! +typeof Date.prototype['setUTCSeconds'] PASSED! +typeof Date.prototype.setMinutes PASSED! +typeof Date.prototype['setMinutes'] PASSED! +typeof Date.prototype.setUTCMinutes PASSED! +typeof Date.prototype['setUTCMinutes'] PASSED! +typeof Date.prototype.setHours PASSED! +typeof Date.prototype['setHours'] PASSED! +typeof Date.prototype.setUTCHours PASSED! +typeof Date.prototype['setUTCHours'] PASSED! +typeof Date.prototype.setDate PASSED! +typeof Date.prototype['setDate'] PASSED! +typeof Date.prototype.setUTCDate PASSED! +typeof Date.prototype['setUTCDate'] PASSED! +typeof Date.prototype.setMonth PASSED! +typeof Date.prototype['setMonth'] PASSED! +typeof Date.prototype.setUTCMonth PASSED! +typeof Date.prototype['setUTCMonth'] PASSED! +typeof Date.prototype.setFullYear PASSED! +typeof Date.prototype['setFullYear'] PASSED! +typeof Date.prototype.setUTCFullYear PASSED! +typeof Date.prototype['setUTCFullYear'] PASSED! +typeof Date.prototype.setYear PASSED! +typeof Date.prototype['setYear'] PASSED! +typeof Date.prototype.toLocaleString PASSED! +typeof Date.prototype['toLocaleString'] PASSED! +typeof Date.prototype.toUTCString PASSED! +typeof Date.prototype['toUTCString'] PASSED! +typeof Date.prototype.toGMTString PASSED! +typeof Date.prototype['toGMTString'] PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..1c00d0aba0821d18506d4cf56e580fe1856e8fa4 GIT binary patch literal 9091 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 S^71>9d3)pq`AjUI + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/output.txt new file mode 100644 index 000000000..57c8c2ac7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/output.txt @@ -0,0 +1,8 @@ +hi.valueOf() PASSED! +hi.toString() PASSED! +NaN.valueOf() PASSED! +NaN.toString() PASSED! +true.valueOf() PASSED! +true.toString() PASSED! +false.valueOf() PASSED! +false.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c16872e0131844495138c469442de3ce5e28a1d1 GIT binary patch literal 2750 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 EgI_UOF#rGn literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_2/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/Test.as new file mode 100644 index 000000000..8f0c3286f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/Test.as @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11_2_1_2"; +// var VERSION = "ECMA_1"; +// var TITLE = "Property Accessors"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // go through all Native Function objects, methods, and properties and get their typeof. + + var PROPERTY = new Array(); + var p = 0; + + // try to access properties of primitive types + + PROPERTY[p++] = new Property( "undefined", void 0, "undefined", NaN ); + + for ( var i = 0, RESULT; i < PROPERTY.length; i++ ) { + array[item++] = Assert.expectEq( + PROPERTY[i].object + ".valueOf()", + PROPERTY[i].value+"", + PROPERTY[i].object.valueOf()); + + array[item++] = Assert.expectEq( + PROPERTY[i].object + ".toString()", + PROPERTY[i].string, + PROPERTY[i].object.toString()); + + } + return array; +} + +function MyObject( value ) { + this.value = value; + this.stringValue = value +""; + this.numberValue = Number(value); + return this; +} +function Property( object, value, string, number ) { + this.object = object; + this.string = String(value); + this.number = Number(value); + this.value = value; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/output.txt new file mode 100644 index 000000000..2b8ba5b4b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/output.txt @@ -0,0 +1,2 @@ +undefined.valueOf() PASSED! +undefined.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..b6edea1d6502e2e2cd69cd355a64a661b439ffdf GIT binary patch literal 2693 zcmV;03VQWJS5qe25C8yp+J#rmQya+@?>ApPEg_IVd>ebPS%dH(3G7|3wKi)RBpaI# zufQ047gi%_1hPjTD~&KtDz#Ov@*%h6;H^qd^m89E2#__gs?7G5>(` zdPV}_s;x|+>DRya-S54YI3UtL3F-bLAwxhG1H*)n@B97*gxsv=^0CxnQadPGrCJPk zwOvtG{IFN`WWEZ0l9Q&*>gTrFEQ4ZHk*mD*xl z#WG5}bz|3@H%s3>T6fqdkduL7oAYzmwfl8Tn~Tm}b;IT0&B#ZUXdzhKd9vvLw|J8* z2p>Ltc1gBc*$1E z`vr5sDpb0&#l{048MlmH`tC>|>S<5^#vv&VkX3S-J%!3LtH>!2h>yk;ss+lc# zwQgB$iI){qsu;DJls5{N{Kzg?wctl49Z-1~Utdows+zlwE6MoMa$>PhbJuarwP)sH zn(C5??^>=C)oQuwtzhPM%B~X63Ij=vAW<&45rMySv5=9kHkEw`08C(q%VaH^$}Zrlv;9_0ZyFtp4f~pyWSJ~ zhIN+d-AtsGl206VaMP?7@-IKq-mMxLhxQqr$uYZ~Nq6;3#GdL&bZWg?aD~mbWAFZ{ z4^PFY*36bQENj-NnYFH6)8?(Wz&Gm3OSh-ght+ZgyXd9t6isow%*y}jpX1-7|bKIpk4Yx$`VZBgE^U3O<@Dx|ha#WG8~_Fk7eHs(IR9D5RcS;P@CY`jFOzD0MM+{6M) zCEKhTID7l1iwvCMFO>17#xSbNI%aO09*jnFvvo1J-X&jTWcTD9<3&}9wrtx5{sJCfv8h6P0hVA!bUCDF``o; z*~Wu16}LZW0Sk1nmS-muHR!5ga2kHQXeYSu%utS=l{&+tt)7=_IOisF4+$mv24FxP zq63~G-%!6yWTMUwtPFxo20bG_zL&{JKNCS^6935f61*zy0?EhZZrNF-9`G{N4*{f= zUfEeo6a)$)1&M-8L7_mYz^LS<&_$t}LJtK$g#d+K3Vl=xQaV8C5QPy6qm-VbFh*g3 z0wNbEj8nKo;S&mz6haiPP?(_*p%A4oOJR<}RSMTAd`jUn3fHOnIaO~^HAdAhDBNVX z025$e0=o??4(txF1z?N762QIyb{9s0c?GrvYy{W?V9P)~t5jH{!b2*2MTHb&BD(?X ziNu~t?3~0NNGvF^h{Q%Dwk)x4FvV@^+o8U1sV_}^2K8mwfW(F*c2i)9=`vCcwM+Bj@2qF*SG0+X)c_t_&v*fA%E^g4`K|LYatWRK{fDS3E#GULf8sAYDEn zzHT7hJwST=j49+i5s4xP6d;4ps|aKm`T`;i1|+pVAhTd_06mQLDw%@wgpp~uKs-bTjd)2I#sgyi#eg($DIgC{1eBpq0(AIt zKpmM3u+gc2=Ugb@9g}2Pk$_C|e6OGvqVrRjK_4UlsszvnVbFRnfL{VZ!vq1oXdF#v zWh0W2RXNnyjy97~;J|DPm}@5I9N?-8G&z0Eq3`0ci6X!hns{eiYpO!1aiqf`Za#H3 z+jB=;`JM5Zv%QBWOuYbqhw)cgW&8U5>*Uqj3G(WlOTI@kD;;N~`t)y+$kGhm{#;Lv z>&f(u`=3kGS=ESTR8(W*>_nrqo%(&&dB*#KBC_{bg63?N()QgB*|Oi zbe5q7rm|35k7d}Y-u;&JY+GsGRq~*cNA-kMrm7hkLz6S|asJEx?>~Gvy2o1(m`7|x z@ig#&Jzk{|Z7dPo$pUijG@>R+vuOHuG#!to??lrJ(ez?8O{3|=78!G&J>|BLyHXTy z1HPr(1mE&@GMVIrfR+>iM5(6{-3jP}dx4!^eR!`IVJgd_^bcr6kB|F;gdD%oZv|DX z`TDE(ek{Ab@#=lE$vMqa&bt=poep@$&Et_J&OUzg;}6rlQ-p+2^wE#gz4%)-g!bY; zP6q-m*+!cj{h^nkl})tZ$JWvxb3#XAix<#QJC*J2BP4zIxcP_VJ%~V8TYh`#sEM^+ zTaq%8{y2yYd->iZ9;d1(68pXpeLS6&q9z;_!GvZ}FyXi;nxKDOluXcG6=f4FF&8Hx z|0E%eXhw=YCD@tM(JNfR6f8*IC$G6Mr%`@PmD3MUi7N_g%fj{w62Le3ktPVI@~g=; zA-N*ngNxH)@=*SY;PsN?_s2RBMY2KghIzz?iHUgf+uSXN?jhtTy?OZht^W=oh-?J| z9C_S4)U$`jhnx{|7@NVNHY0b~d~>LqhsSRmK67wA&o|p!M{8Sv<@HFSBzqgt?Ukd; zO&%2?-cx9@1$CW5S_|^YvLpwwEt)^I&RO4d&KY^#q9Dm#D89vGb{+L}V2@jvA3%~% zS~-BNEcUcp`NFL3_K*H + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/output.txt new file mode 100644 index 000000000..ea6fca0ac --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/output.txt @@ -0,0 +1,2 @@ +null.valueOf() PASSED! +null.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..fc5306e96118dbbdffeee8f0e02d0216b5dd37be GIT binary patch literal 2692 zcmV-~3VZcKS5qd^5C8yp+J#rmZyU!IpSL@^vqOp!DN)~+y|NWclvgArJ8>-AifM_o zWXqC6efTRYGu!uXtHV8N

eRF)gX*HWUHd?M#3XaKaCSnz=J*#L}Bh%q&G?dNE=1P@4)1EWS zy!8J4`zIb5tFPjR`k(#vGWGx=KmKFocfUdEN6)%dwaH(C-*yrrIJt_sXH647 z3FAgu{L`O*|KE4NoGTM{yHqMzW>H z^CiDu+Rt0_g?za)Q`!rg*;3jH+bE{Ss#U9EtE=g+tc=}znmOw-J=TjdGS@3L%j=Q} zvrx5~@Jg*vXi2;*TeNIet2Afk3(AI_FI0mcm~=q(L2PX;zM$#uI;tjOOUv zb=RJioz*p$jQ^tPI$o)iD&8_?ZYQm3tzfHnmRE1bmb;#ooD}q(LMd$)w!9Bw^Y>zR z;>$~G>%Ct)y^%4-rpHioA4~S@*;!vKd1vE(d}TeJOs*#TVwIhm7zxM0tnMuO1-}0H zLEI7O7TKLZjs^oJoKhWN(m}!UhneEAOyOl|2XvD=c?Gzg zfjtt5tzC}HM5CWX(zSfS&KK3H)86VzZ7*$A)S|N}7z}oy%i45km*LP#tWq&w(xT|d zup_yen+UNc0HjbB)6N5$X zoA$13rmLQnlFO`y)oLw`S%c+myB~e6F>wmfAqvsD3<4NntywrXQ*Rrh>N_QSR@ZgW z)B62F#~J}q^M$C|CKRB^m5?j90K_VhuY zHo*Ek1HOS?g(yUu>s#&zh4g!dd}6PVp#OD>j3KGN~hwiv zwOeu4Jq8j3nE_>>Fi;sVCUHi+3_2KeGU#I9XAoe}&7g23pK~trYrr2- z{+RMJl;5R1NO^?vA!j88FMV!T7sDRCblKl8{SH5W-H5~a8k ze-7IIZpwiWa9+m`B`qgJl7uoGJN(&~BuPqp5Gvy`n$b8{h+p*p@pyrFJAicffcQFr zbanyh@^h||vqUDU5>SEkL$@lCLFfs{EEu3#Z$RO}U>|xo3;h^KKMbJkAPk~q9fq(C z&%-eOAQ*!)gprFdLNqb~X9*{haE^G00Xp%LFpLJ|-tz(4cOjtkj|J3$j{F!KWZ9Y$Ye)UB&`uaZ|kjgePxUGg208G4kawaMQikzr}J^{J82jl>wa z`zf8wXy&!FrfDG|r})1ngdaA9?Awf%)>5-aX(e|p7cuS}xYQL4rHLi3<1rp2Zpf1v zjz+k~LoHRF<|nF4O@--}-c8~tc~Hrtc|sc3w6ucJDQV>>H`n{C_wNrEMHd41$n_{5 z2%fRWtJb6SC4xIeLeA}a)FLS!O??(k-HN7S(bVl|YCf7`(bU2tGU7hF>MbdIX-~cd z_@=iAzLhQfX(0#+EvXX7w5uN74jBErf$eT%aJL&_rYJJ~8`PsmM?FD8j@}qIgBq4S z`Rbh?D{rj5de>+OPUD30w#j*G03LJWXlO~WkKTO$-DLL!At4l9|9-L?f1-xaUhMnH zK)@wiXhWdib#t_`ffoGOUB;#$3?v?k8aiqxvfVv|q!LGsKP2uz1Ug#sTZ@McEcfan zO;ckth&_98aU73RQ&q~psYf49W@yxc!#%K|u_sw@v?p6&JlUfb=&$w^3kq^JMne8^ zLh8{pjXojRoRiT@Lcx*>kXRzGg|MJeeneAJcTq_wN~`yztz{%YZ16+Jh@f)!6Dv|; zSzd(mlVP%|JRo?(d@in#B#~vZM(~nZ7xTnrJozo*7DM+Ca+umUc>RS3(Q;{!;1|O z6(QaeXuJt^oIrXL@+k^cg4h;~ADZWEY&hqPyiQr7N(YKR6fwJwy4tYKCgumA%5f_P zu$ASmRx3Yx1S7i|!rgcQNTck+8d)oV-_wP}#2LL2@ zMuMW38;Wj+qhM#G}ziPurWLc)Y yi03kmPSIjxq>*?gz5YpDTW3!d_}r-i7amC?yMBaukN9eI{x7|S#Qy+R6-LUZ(KTEE literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_4_rt/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/Test.as new file mode 100644 index 000000000..7e45275d3 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/Test.as @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_2_1_5"; +// var VERSION = "ECMA_1"; +// var TITLE = "Property Accessors"; + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + // go through all Native Function objects, methods, and properties and get their typeof. + + var PROPERTY = new Array(); + var p = 0; + + // try to access properties of primitive types + + PROPERTY[p++] = new Property( new String("hi"), "hi", "hi", NaN ); + PROPERTY[p++] = new Property( new Number(NaN), NaN, "NaN", NaN ); + PROPERTY[p++] = new Property( new Number(3), 3, "3", 3 ); + PROPERTY[p++] = new Property( new Boolean(true), true, "true", 1 ); + PROPERTY[p++] = new Property( new Boolean(false), false, "false", 0 ); + + for ( var i = 0, RESULT; i < PROPERTY.length; i++ ) { + array[item++] = Assert.expectEq( + PROPERTY[i].object + ".valueOf()", + PROPERTY[i].value, + (PROPERTY[i].object.valueOf())); + + array[item++] = Assert.expectEq( + PROPERTY[i].object + ".toString()", + PROPERTY[i].string, + (PROPERTY[i].object.toString())); + + } + return array; +} + + +function MyObject( value ) { + this.value = value; + this.stringValue = value +""; + this.numberValue = Number(value); + return this; +} +function Property( object, value, string, number ) { + this.object = object; + this.string = String(value); + this.number = Number(value); + this.value = value; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/output.txt new file mode 100644 index 000000000..4be39d5ec --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/output.txt @@ -0,0 +1,10 @@ +hi.valueOf() PASSED! +hi.toString() PASSED! +NaN.valueOf() PASSED! +NaN.toString() PASSED! +3.valueOf() PASSED! +3.toString() PASSED! +true.valueOf() PASSED! +true.toString() PASSED! +false.valueOf() PASSED! +false.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..ab8834cc46f1fb388dc0a0fe590278e67c55f703 GIT binary patch literal 2782 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_1_5/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/Test.as new file mode 100644 index 000000000..1b649f9d6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/Test.as @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "11.2.2-9-n.js"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + var thisError="no error"; + try{ + var m = new Math(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var m = new Math()", + "TypeError: Error #1076", + Utils.typeError(thisError) ); + } + + /*array[item++] = Assert.expectEq( + "var m = new Math()", + "error", + m = new Math() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/output.txt new file mode 100644 index 000000000..875fccb1d --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/output.txt @@ -0,0 +1 @@ +var m = new Math() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_10_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..95215074869e3544d017d33b4b3513db413205ba GIT binary patch literal 2631 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/output.txt new file mode 100644 index 000000000..1ceb38663 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/output.txt @@ -0,0 +1 @@ +var FUNCTION = new Function('return this'); f = new FUNCTION(); typeof f PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..8813cc7f10e20ffd19b085a5a61aadd15eb50882 GIT binary patch literal 2726 zcmV;X3R(3-S5qeE5C8yp+J#rmQya+@?>ApPEg_IVd>b>iS!3iulJV|(!8U6dB!i8? zE5M(NRwJo}v>tuz%m{E&TdAVThaC6dt;)xNTyoh%4tq^iPC2A12M}fZo=Z|W<{xmn zXCx3lBtvQX_3!=O>(~9>Yl%H1{R5%yKO!^)XfZU55c*Z$KLMdzR-rhTUQB6w6|-v3 zvDxj(lH=6pVzJ%b-RSQ1XwBM=U7MYqjm2kTGc(hSF>Sx9I>z2~)xI=2?>bndcHS!2 zopP{E5?g!!li$g?x;fv_h+n9lI92#vB#$bH$ofF`Rj$UN_5m zgS(6EP1~hf{^hQ*L#KjPKn&cDLW>ePt=WkiE1g6?rDirbC>KfIJa;b=X@)m zBD07ZuC*JNYthN$cJ)TiEZZe&wbxm%6`ftfVhh$9)xzmgr$la+x2WON{;yG+#!XD4 zy4^6g={&7|v$^i7Pat;(hC}CPZfN%#rZy9wx$cF_!CSG9GSNa<%= z@Zq^nWZ75PM+(0D+jUk02{(Uz>TvN1+3cZGcD9R?n(x3kP z+yA`(#k_;?-CE70MpapNta5c*O*N`{zNWNOD;LCa)seWPfSa&rp={Sp;}v;W+bPop zvs~}a*D6t?P|MM%!)QvvwyEVPYq@V}-swN9ob!}Ex>sk)4XZ)@o|rOBo3`N9hH17L zuj*8)8@4SKjj}0kI%U%if8^2yl}Cy7_2iq6DvJ0YVH=aZL^j$%q{<;#KMEbz2wUB`bPgR-P*|O z6W1n~fjP|`v`b{;*`uUO=;gaRtL#oE zQ^|C4b-`l{rfHE{w3`2j=1V75?|GEIG%Ki&)aqt>*;R(PaCY_N->V{?0 zmN%BxykS$jYnwW}^cMI;;;`)INpSKPS{?5d0xOAFV*Pq-CLaGhmTQzvr(EsZwaN}{ zo3~QyrCc%cPQx($9XErh-PROdX|$lQ4z_F6u3f8E-PTyJ4XP<7t!_Id)plxi?ov)z zmhlRTOFM?8r8ZX=HkQ{`nTsmj)!OZIWzwQf!>VddsccV9-PDS0LW_TeVf^H3MXjiK z#U>lvufzhcsBK!8*LZY?U#~q$J}j~(G#qvfS%F2bAH8-9Ems|CvE7w-sD})k(J$24 zU0<$JOIfe;)A6kutD3j6D^?qo9JS=4Su-5PoA`Ky8s&+R9M-UMk+-V!&~Qqkk+XfP zHBV_rRj1}%Ad20{*^UJ?(C#`nuU$NW?ZXLqDR32@mA?Z~wC$QRr)e5*5$$2wuJGMz z(^|6S&{fQ7J-X&4wl$Awo2$vEkCF=;$wkerV`gJhs(JTL)Uf9|8vV+Y?6AY4idW^h zTrJSOwIVs`%R$eK1*fs^DD4CfoN4XRv#c{Z-0B?JX14_;-oY?t-vA7#LwLY96d3B4 zk&M*a18ajIqe0(DfX`(#(oaNCiNrrLdkKCOcYzcja<}Y`QV;lv8iWv&m0sB$D;NX} zA_fVAj6uPGu|Tlo$IykL8$%C@vIryvh|A3Y)ntw9ixAW4GD5nQzM-Qoc! zxUZ8(Vt;M#0ylQQv;X%?5Cpk12n7?7xlsv`QBd&#^7#Szy8v|s00p`Mb@u@32@;~9 z^GHOB98v%cLa!pAVdx8qI2@AH{*X+<;Q_Y7c^G7Y48joO4#P0>ticGYz>6@-ep*bx zIfT(=7(*($0_PDy5g124q=Sb1C<+%sV*kaEG;k>-4^D)Xp-)11_;N@cnGBK9DDg{c{rChEJdbx7e(F~vrSc)Vl&1tg+}CueTuGDgm=yCoPJ+_keMyczDeB_ zBkzsau`0U6CB%N_u>!cwk8PeG8#^506A$C}SRDcQ{K{eca2c_gEHKTjLl#Gt#Is+< zvv=azL_B*po?VD%aXh>D6peXLNx35wu2#f5h`psP_Ira10`s8=AWA)l@k~e`EQK>F;nDKR)gYBXs;me-KvLxoz&h53(fckN4jhv zWv)Jc^V5%!-YW=AG3t|_BE9T)>lE|%^ruKDE-adq~spIA!QuiPRU2Xo>(oyp`C#@|>IZ1yWX6JZ$X_945RTPQ*>M;H!l9%EX zj#%EH$+8B=6_J9TsYn#G{fbP%6blJ76`VxqFrJg*&ru{VN8(qx0ToP0Eu+_*%w@(O zQ|0V^X2cDJwFko13KM`&*hiW`Tq-_HtqQ3XaS1L)qG(NigxF>A6~7JANEFdJV)w-c zYd=IpcJf<%Sr)nvp`+~P!Rxody9hDlML5Kf$IS!1cyN5c6;rO_S$L?e*gj~!InYZ7 z$8TIcadExOCtFXB)}8=MuTK&s*?$<{S~wV;43OLCZ%Mf2y@ zIqT2db7s13QIO;=Mt{O%_7>{tz#g}-Ab=#F6mf_ZvDnit;-^nxtfVryS7f*8g~K@O zt9L>6uMF9GcGN6BUwa14ANJohkBTq)|NY?uBlhvm^tvO=YdOhkc|bpJ3}goNL1Qp8 zqz@ZInPFWshBG7jMPnp0s!tfBnREJO<6LG;zhaDK&g&85d}dtNjq!}8M-7cR>zA=8 zRS)CZ>%7v`U#7kW`+ai)9Z$#ysV(7kp4V0-9ApKU(W{q_vfuo?mKB3xHygEZmy6dK zZg9M*f5#o<<(xc$dU{x2Fv0KoQFzxh*_cz<84j?!MG79qk0wwySIkdH2dM(Teg->m z+JO&s;KdGnxC7trz(+dpQU^ZTftNe*a~=4%9r&0iic&wri}_|ZFR=;KOuZCdzdd5g g^Jfw~ekQ@@Q(>$WWH9OD-*WCht9O|2Uxk84q2Z!Y3;+NC literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_11/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/Test.as new file mode 100644 index 000000000..3c83462f4 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/Test.as @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "11.2.2.l2.as"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + var FUNCTION = new Function(); + + f = new FUNCTION(); + array[item++] = Assert.expectEq( + "var FUNCTION = new Function(); f = new FUNCTION(); typeof f", + "object", + typeof f ); + return array; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/output.txt new file mode 100644 index 000000000..cebfd00e0 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/output.txt @@ -0,0 +1 @@ +var FUNCTION = new Function(); f = new FUNCTION(); typeof f PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_12_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..eb20f0fb072d830b922832179f495c6b68475e2d GIT binary patch literal 2483 zcmV;k2~74wS5qcz4*&po+J#rkQya+{@1E(IR!azJK!`UUY^^bPkOsW#U1ZE!2FV8V zum$+J$Qns4Pop4>{)Gtx8VhlFJ@)*lVhC${|%bfT*?axg?ci{sE_Z zMu2dol7X52`u9Eid(6NAKz|3I^A7;@L9n3o0|373{s#nL)+&{g*@cXHuxnQBB-`B` z+i{$FGLhKd-;eL#ir1{|#MI2pOhTVdOixcTiAnoS)iDkxtM;|AIoH4fwTo7z?o?`3 zmG6y0t>N4q8*5oD70-><8HdfluP4Q?)R zFlq19ir?-VdvvmF8urd?;zE$?I2FgFbE&#f+@Wg5qz7v1LfsYiB)DwpBF?#1KxL*8 zH(YHuE?1*nj_cJM1+!xBQ0vUkdadm28y0g|Yg9`Yt}X<*TG670Q~SS4XJTB%G^*PT zW1G&=>g&yQmwgVoComj3H~po$)G*a)efpLcE(d25pH!lSu;R{vh44ScSuihr{P^*u zUu4yn*^R>A{`D5?0Ra4=wcq}lQGfAoP}>22j*JEY;GD8$?9wR^2646#9{%x9zx(%x zU(9U-e7{yRsZo{J9jj8^_GKE?BKL{*YL${$sXB-o3c3Z0mnwGMG~SSv+Fpguo0WQJ zv9=pGO0@!wJ4{SY**3Ktd9Cm>T6B6YGm{?EPY>#hxnVVEz#}t;Y10V|EjvQaUmO{Zeokxxvzp!_(szMfw2sopv&XHtvH>4k39TSryT9xWwRpGT&D-g2F` zteO?5vy(enYBx+rez3fDKeZfsRdbJ^Zkx4&VQvK;r{*7}9;BBS*Ef28>GnoZi%rFt z<{m5Auae1ND*Iq_CB3?l&SuxL(Ui5_;3MHWNUH9lULzYX9;aP_E`GYp%+72&lg_4B z=RJwuEG<)uR*RpA`Ln6j2cAfGmNnETY~N;f(Pb)}xa>XsG_~w`PwyG#WoF=MI=h&8 z;j$x7sZ}Yz`9yo$G72soG};eGoU@a3T9+dBTj$aF8dk*iExh0ZPmSwydZOyya2CN|xsr6flXnu8ojt=+Gn=dP z8;fhJ>Rq);_tmq`zA=7BEuUd65svY5)XHjE_DbL3wLIP9FSbycFAJ>w4Trq|tl)w- z30|Wsi&ckO2D83LJtTUGKVM^S*-DjK@;W<*L;b79s_J=h$!cS_KrN|k)(l7XHhvzB zN_k33(`^O$zr=hVE>l}%dRc6MaDQLr5g(m>n0FL*WrZjw8A zlF!niu(%toqIiY^ZHTOH*PNuPs=Qy-m5RN~6QEA2>6Ss4kyJyP>J3n9pHMef)6XBL z=Qq*|s@qgd$EH;EUIKB$PPR?mjd96g`J=Mea=210(Sx-zIUkZ@52@LcQ5&8(? zx5OSoz=t~^3KFSPa#s|B0pbfoh0$`C8j&4h%an3}G0? zP{FVZ!)}Zs7)LSg!*Bq@L5znm9L6w;Aw#ZUIEvvl3_rtg48w5@Z(=x!VFE)P!zm1> zF}#K0=NNv0;cX1R#J;bvZwA98xdU0)q+{gKa*iY*c1g`9U6#w@_5Co|`2pJRR9ry^5K&R}7z!!jkbU@$_LJ;VLpd$o9 zFieOHhL{B;DKZ4TuuB#|KkQaSDWV{`N0D$>B+B?Bu$Niug?&I|{C*ao3I|wMU4?_} z+Z}^L0E6pr82G>qI06WmfLDMYXixnh$#rS{J6#NxBuPYngU9;mX?FyG(|6j}5g!0r=I}$9 zm0Npo_@UY4oaP1ReT(y6gNH@bJRMl%?9+EYd_U231AuWR`tXN|F80UMIJ39-!-S%E zm)O>fOy*fI5=kke*Yv1tA)}xcPN061*heRX=j`gj3C)b-i zDgej@G}eOr7m(V50+NKJ2y2VxkF7jwOKzSSuR|1&)WO6b@t8eF!8UBEg>^!Rr1SO- zvGx^1XYITE91idJ7#tSa8)x)b=W`S8WZ`YCoHWa;Yb&tHhNXE@UhDbS$B#@wF`OIG zCXA8X6-_g)jc83U&==_vC=c+1CC%SXbj0kfKM z{UpEs + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/output.txt new file mode 100644 index 000000000..108b20311 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/output.txt @@ -0,0 +1 @@ +var m = new OBJECT() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..16de6dc42ea352f360620fac8639e8aa9ae903eb GIT binary patch literal 2636 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_1_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/Test.as new file mode 100644 index 000000000..613fe2cae --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/Test.as @@ -0,0 +1,45 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "e11_2_2_2"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + + var UNDEFINED = void 0; + try{ + var o = new UNDEFINED(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var o = new UNDEFINED()", + "TypeError: Error #1007", + Utils.typeError(thisError) ); + } + + + /*array[item++] = Assert.expectEq( + "UNDEFINED = void 0; var o = new UNDEFINED()", + "error", + o = new UNDEFINED() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/output.txt new file mode 100644 index 000000000..ba4bbaa60 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/output.txt @@ -0,0 +1 @@ +var o = new UNDEFINED() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..f4c52d91bb01eca9acfdc01c3dbc8921aebcb0eb GIT binary patch literal 2634 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_2_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/Test.as new file mode 100644 index 000000000..8b1d5715a --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/Test.as @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "11_2_2_3_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + var NULL = null; + + try{ + var o = new NULL(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var o = new NULL()", + "TypeError: Error #1007", + Utils.typeError(thisError) ); + } + + /*array[item++] = Assert.expectEq( + "NULL = null; var o = new NULL()", + "error", + o = new NULL() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/output.txt new file mode 100644 index 000000000..c50b81d61 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/output.txt @@ -0,0 +1 @@ +var o = new NULL() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_3_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c4b28aebf88d4bd155b3bfc298bb8607cb807834 GIT binary patch literal 2630 zcmV-M3c2+|S5qcJ5C8yp+J#q5Y#YZFp4pw<*&#)Vlql-Yl2EkqLj)4P&$v8bJtsGw^qe&<(p-n$Iky_2;!} zy*UrFn^R@S*_lryo;`aOe|9zAu(uPl*RNksm~)A_xf!sSX}+jC*7KQq^WxNk8(@hy z3wCA4sWj@km|OWq%egr<)rndxybZe3va4>$Vj;n+yvFNJGcg;Vg+Rr^e5qmAEN8*m z*{N0vmI#-4KGQ5W3SU37cKJ-HYBkF@5~qg3$Ei3~zL4Cp3T3XRtNgj1Jau=CJqux5 zJYDBPXF(TzA!PA$JFs!x!eR>GxVyea@V_>Md7*HxlnuqJuzj7tm7h zAMy>fC>!~G8_r^&zom^f?Ee+`2IH`N_ zcyV6WJTdi)PU@6xH*Eh7?A*!lW~=I`cUIPJCs+DDZ@62~x2ui3Ro(JGNG^Vwypvj4 zUf&q}mCKES5uJ^K=Ps1&*Yop%WaiH1{nYA4DwA2uM3VM)OSFWWU|x3z{UY0V@*w3J z^o!k{RrY35=~O1Qy69O9Wq66(yk2<6%$G^7-tkNZGC-(z)Y@id*;R&wa5j7DVRFUG zp4zplXO;eksmyZviK`Aj;vMg8+seCg!0O%{b53^BYoA%M&wjf)tz}m{V}6p@ zzk8a)w`18&-iZcfEm%$7?Ahjypx&Z85z+}Y6}MhW(zdM^lbz=GI05WPB-gJd=1lX$ zM7~w2I+Z$e%9WgLMI<>||pn?>n z-HhBF!U`JljRwSg6i_B(jS=xx;34@n+Ji}eDZPq2YJE5egBnuYk@RCft57UaEK^J< zRwz~}rc`2-_$lt8xR>HSih~q~DDJ0tfRZq!5lV+C9;JAU(sLA#Qyiffknb z5}U9^T>OXN$8!AjHS*X$w(qZa&06R?S6LburP2R z-5*I3PVPJOe?KHiQo8&I{JGgx%48%XjWGrFsXmODA0uB6M*aXsJ-rwO`Y`GZGNz(2 zNTnzt6{8{CuS#eH4}@ej93pfuq-ddV1TszFA+Q?4!w_=>k3be3j{@f|;4ygRNAWpC z(Iq^NG;|qHAckW2Jn|s}>&TDdcrqmSUkH(biy+?TCQpxR zQuH`D;TqxCYZK;sZ=xvJgAki$U?E430fTsuqAImw-|ca9r6v_fp5$hYTShWBmrJCt z;`IA+te{vQvDh^1kNM;S z^Nt`1_W9KV^I#dlj0nw*1K4ejnYkNg?xvYrFms=nxm#wAnz`g-H12)M>MdNnQj>2X zc#^H#>Dxk(Aci7gne-i)*^n_*4rTj|k#ax4s-no`ulT?`IvNNgbo9zt4a1s^wY@h% zSd#Hz?@hZcH0@K(>yGBNf%gieeKfi()JLy=_&(Nu8KG$~{p^QWKl~(|hIpADVxf>H zo}g`ke&5d^$~r^{0+WpmAs8TRg5bHG+V&41lv_M%|1Q0R6S(KZek*m@KFX7|6jZ_3 z2*Y7sx;q5~p{h#QHwWgUSb>-v9|A9M8(4vlfE3tx42;1*5Cupe7n5i@IEB!GnJ0oE z1;u3u$6Nx2q|r-ZEM%}B*Oc5Ha1xHv+FfaDS3Dc#nClo z1$c|@i^g6>vW(WCnCJm?5Yl8g`7MzamhJ=QxXOW7|P3tOceitxwU+FsV!E8kna?l>OlTe zNbf*Bib9ky(4zfg=bVjo_nbi&kR_t@fcd&uvzMs13(It{K8%U-mc&6IvD|k;;*H06 zysQBn61+?SFC)f;70C`6L)K7s*ch>fvm=IXjbulS3)X0M%!pcJ*>lDv>s)r+xNMDQ zCybaikv(r1*7>Y%#4R0y^(#~+^#fCXSy0 zY+pLeJ^pd+i5v{OCtD8pxOfHdrvh&qUx@$(C9gzLUmtKB1iu?c6&=uqF|WdT3=l~s z!2|O!igKTqzKD|j^p*s8xC_sA;e%cHmtA + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/output.txt new file mode 100644 index 000000000..f0f7871e6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/output.txt @@ -0,0 +1 @@ +var s = new STRING() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_4_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..b2d5a021d372ed55b506fd1129b4825fafb26f43 GIT binary patch literal 2634 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 su57PYVEfyH*X`p + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/output.txt new file mode 100644 index 000000000..02bce2ec6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/output.txt @@ -0,0 +1 @@ +var n = new NUMBER() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_5_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c8ae6e8c97194d241b07c3aa4e531434e10b74f3 GIT binary patch literal 2630 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 o2{ykwdfhxNm3#kre$EU>A-k--tBmyUH + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/output.txt new file mode 100644 index 000000000..092279166 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/output.txt @@ -0,0 +1 @@ +var b = new BOOLEAN() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..0f24131e1c78d6ceba185da6a23054bbb6460c07 GIT binary patch literal 2634 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_6_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/Test.as new file mode 100644 index 000000000..4309b0392 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/Test.as @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "e11_2_2_7_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + var STRING = new String("hi"); + try{ + var s = new STRING(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var s = new STRING()", + "TypeError: Error #1007", + Utils.typeError(thisError) ); + } + + + /* array[item++] = Assert.expectEq( + "var STRING = new String('hi'); var s = new STRING()", + "error", + s = new STRING() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/output.txt new file mode 100644 index 000000000..f0f7871e6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/output.txt @@ -0,0 +1 @@ +var s = new STRING() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..0836507f43fe115b8abc6deace19ac7d4f694935 GIT binary patch literal 2641 zcmV-X3a<4-S5qcZ5C8yp+J#rmQya+@@1E(Io|X_uAjFq}!PXih4`{%<_L{X>%OGLA zHh2a2bHN&k7SgUh$jk`aNu{=mDj#y(gSRRC-p7gwh0_I7gm`t|Ecb0#@6GYJ-x&a0Yhy_~E$7sltj01MnH z*ySC!T(9Y3ZsqF@_vZL`E9zF^ebAkTUGYM06_UKdtGwnq$?2(S2((q0E!OR-<<40< zJC$<565*0BC!JEg@XZTrmroWemQ%WsJT(+PZrQEyxzvtTC~-Yg;V<>nsk>+FTL{~& z({;|Z7E}a}Da-Tr*5!G$+X=s&M!r&ZO58rlvsy2@FDx4p)*H30(^RL1!mVI)%dP)k zrxP>bQn6~=4Qrdv@!IqCRZsmM@^)akd~W8Nez#H4XUv%^{&EF)Bl$rkS_l+(4lRWL zDc?Zz((&=}(|`=sSK&*--~9CoZ~&o)&sTo?8<2hqtZ~Ohe~HpggoLJOTU9=d!e|O6 z(w#s4`FH<*_sh9DqPOey3b$(Ns%w{P+ghekD~OzAw_e_o%QcsXKq0SSQ(I+cr((Tg z_v^c5K3^&CbQbE>DQl~q=Tk12sVT?dwyUn>zvczE_pEZ(R|fdY9Z;^>4IcExj8$=X z3tnziDkm1Nb~xFw9ETLGaz$Bp%M~a3K}Zi&AEZ`S(+isJk7H^kwRA7N(4+g~nC{2p zTeG_6i|JpqQm1XZZU=W@=Wdoejf$%--dnkyy4Urr?rlNeuGI5ZWh3|?HUC9wF@0}o zb*=YT9yba`d^!%EyHK)U&(4NY*~Rty>E*R_HoKCIrR?p7XbCUDtnLl^1-AC&LE1Cu z7P~vE?98S!>1=v=-nZz>@*=l+t?+?aAe&lV^i6uQK&TJY+In`$Q$~bvHhcPE>YkrH zy=zs@DuWNx*`>@APaS>8?Q-$e2j1JZmG|V3)xJ6Ap6sO4KC|M0{eE>?!!G;A{3LO3 z_cTXf$Fd#XiUwsZSPpkOwz(^)H}6e^bV5zVtCy0pZR^!otNDFS06UVY)ho#v)4ZC@ zH_8>aT$4&==9bEizYw?X^E|q1*}9|O)NA~OzPgrOT3);~5&Q3=Oq=F4#gj2tERm6v zU0zjv7wmNSjlp-t_1Bda!vZvk<-#>#hZg*P@!KJ?RCBp)!4`J8kHpUC=j(76muuWs zS7C!LSA7ZwmaS#IO{_Jld2TDkO5Ji*e-aQS(79M8aiOo2qUb1c-*QW`m3IQmbzkXB zsTE$^c1x<$$UCkbY`YypCr#pQw!>{Z?+C29(JGsNdcihC)wk>Jtgh?g@bvp-rz$qD zPwMGbKu&r_Ms$Updu5Iy` zD@FFcR(-w$EK7%%iT)lBo$0}$vsPzxv{h`yfwtz%KOC@BTqqasiQ$;mPh)}pP=Bw2 z6r|mZE%jjq^#uk)Vm=5cld;B#_$u&_f*S3>B*c_X#T&IQ9EL%SDBeiAagcpYu|%;< zF`-zYSf!X!iBS@yxP#(Oin}NdQyihVo8lfyqLjuc?WcH<;vq`UQ9Mj>jAB4WDITNv z0>vLuJWlZh#g{3bq&P{jN%1trGZbH;_+yGcq4+Ar*QoX>)vi-*mg3LY4GgPipJR3l zv!KMH5}U?s5D#IB=P6#GTAFGZsx4CO4h`I;(ic>^N2U8zT4qdU*D-rU*ki)Z5q68P zC}By$1_^sg*fT;yU(wJ84QQwpBK$va-s?RQ6P5 z6_s63*+(iHSJ{NhE~{)(WmT1RP*&51H1<>*MgBWYLLYo&EVTwnMiL>CXCrxN`?F<- zg@N~I|45Q>^4_NZ`yok^(&k6t&&#e-CL<9RYC)}CnBrS2%)_ZMTfmI*whnNF+0J7+K5NLNE55dbn zj?W>AF5+RNp-XrKF_gfgD1Z#Cqad2XV-dOge1!B|h$zu`MD6`3LSq*rTHknt^4Io5XunnIn!W@@;@g7>ajjK1GSQ3G;FlZ<-ueaAq1M z-dX06CQl4&Qv5hP;u+z@TNCDc@8T%jfe@QuU?Ink0fTsus3J8I-|ca9xhfS%p5$hX zlyN(EC1++n#+gs#L_x8x<`qqu(8!PmrTOXjSUBF1#%Hcx`*i%#GpO2iQOsGf_0PoC zZ-}kKE?Gc6Fc$??a3H82mCX&wzO3H8yNAHGj?UqWaCOtU{Ey5V2M z35d7)Ln0FK#S^qC(C@n$L|KCfVc@f|E(8OFhamWFr?%Za2;~-zn!nGaaT0f&*l%PG zn@4%Fl7T81>rpt&i+9F>CR9}k`}V+mlqe9W^dYbVH-Q`Y2uOjAC%_x5?^P8bfxMMM z6X9`$4$M3e1Su#ULpbIVFk}(E7REvb`(aJV-2o@zD6K3>8+Qeb#00)1j)YYFB6Cm5 z+?DU(^NA_+sd69Ki78=**6ONM{hhm^KfHJOg7dISJp6;ml2sL!2@&S?%~Cz zSQSEnQ)s*e1y3Qp1$8J2QKCSL=8vs&HrBjz23<&&h|&S(YhulQqRuvKwS{$IOqBN| z4g-nht`ickKgPo)4d962Wg2)HGe)e~W}ne#^=y(OyEu98xf$OH>~~5cJ}x zq63;R=2bY49wNykd|)2NQSPhaMx5+tHYLELZTRyxytfU{wc)Wg+-k%7+VFfE-rt57 z+VFuke5(x~lx3Op0$$u`b_%-0Q8UA(*FTG^b?8j7&YdY%@v$^q3IjYW!#iy3z=W&z zZ5V#yv5oD+X0f!gjho-?y=@*A%f0_PJ_f@P3^%ram9ZZ2+VXxE-U8u2w@eQxlTIoE literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_7_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/Test.as new file mode 100644 index 000000000..10c59e38b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/Test.as @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "e11_2_2_8_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + var NUMBER = new Number(1); + + try{ + var n = new NUMBER(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var n = new NUMBER()", + "TypeError: Error #1007", + Utils.typeError(thisError) ); + } + + /*array[item++] = Assert.expectEq( + "var NUMBER = new Number(1); var n = new NUMBER()", + "error", + n = new NUMBER() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/output.txt new file mode 100644 index 000000000..02bce2ec6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/output.txt @@ -0,0 +1 @@ +var n = new NUMBER() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4934b8368ccd79a413411ef92a808c5f9ca41d20 GIT binary patch literal 2644 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 CX)x;m literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_8_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/Test.as new file mode 100644 index 000000000..f5456fa9a --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/Test.as @@ -0,0 +1,43 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "e11_2_2_9_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "The new operator"; + + + var testcases = getTestCases(); + +function getTestCases():Array { + var array = new Array(); + var item = 0; + + var BOOLEAN = new Boolean(); + try{ + var b = new BOOLEAN(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "var b = new BOOLEAN()", + "TypeError: Error #1007", + Utils.typeError(thisError) ); + } + + /*array[item++] = Assert.expectEq( + "var BOOLEAN = new Boolean(); var b = new BOOLEAN()", + "error", + b = new BOOLEAN() );*/ + return array; +} + +function TestFunction() { + return arguments; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/output.txt new file mode 100644 index 000000000..092279166 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/output.txt @@ -0,0 +1 @@ +var b = new BOOLEAN() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..f694ae76d2363973376e7a402683698191727e51 GIT binary patch literal 2638 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 wW81}}W}&oR#LaK_-!_j5-}L_Ht<8 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_2_9_rt/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/Test.as new file mode 100644 index 000000000..3d62026de --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/Test.as @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "e11_2_3_1"; +// var VERSION = "ECMA_1"; +// var TITLE = "Function Calls"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // MemberExpression: Identifier + + var OBJECT = true; + + array[item++] = Assert.expectEq( + "OBJECT.toString()", + "true", + OBJECT.toString() ); + + // MemberExpression[ Expression] + + array[item++] = Assert.expectEq( + "(new Array())['length'].valueOf()", + 0, + (new Array())["length"].valueOf() ); + + // MemberExpression . Identifier + array[item++] = Assert.expectEq( + "(new Array()).length.valueOf()", + 0, + (new Array()).length.valueOf() ); + // new MemberExpression Arguments + + array[item++] = Assert.expectEq( + "(new Array(20))['length'].valueOf()", + 20, + (new Array(20))["length"].valueOf() ); + return array; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/output.txt new file mode 100644 index 000000000..2804a16d7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/output.txt @@ -0,0 +1,4 @@ +OBJECT.toString() PASSED! +(new Array())['length'].valueOf() PASSED! +(new Array()).length.valueOf() PASSED! +(new Array(20))['length'].valueOf() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..f5d161b4473aea13a6299e0c15ae775920bb8024 GIT binary patch literal 2549 zcmVpO4MY&oaiW^|ERkN3&Jy#?*r2V2N4< zvs|~!wW`X;M!wdt?@dj$ycP==PU{V`;Ab7&mU*;2)@_U^_miQL96+ZDQys2hbns-`ORNKIUtJ7kx^xy8#k z7g_<8m_^iZtevpCN=EZ|21mU zxJkvR?lz2Fxf4Vbg{AkJU$wiaM{)-*Us{;N94JnP?#_xeH*)|1a?_ zSQOs9d-vQUvh2(3i~QgG?G~#60J@ITzx|F$fAwrq%Lac5p85dbnv!Yk(>dS=Q8o}B z{_)Sh`_J27E_@B}gIcXZjjFt1o8{`Rl4?{7d`@&wD;LFb)kfTr&q-LcShngF<0W}g zJ1En|O1a)$sO?9MVl7XjHlxW2%c7<&r}JOag57^r8F!T)dQ@l1O|wD0u9z|^7Hz?6 zjY_4>cv+{YZdev78Rd$!WtS^f@I99fD6c0rHj+z<>OLprRAOZ{xzwk+&k5D_M~iV) zamC~>T2m)Yvu1khY~^-_T8)Y=FR!K_BvyM~)SM-#yOmnrsO)&x6N`@%%gNQ1jm`dF zIki#H!gFC}dB9Tk>v-Ik$SiL?Nv>@sGnsTIlrVQ2yd|6o;;QpdZ;;Jr>q&>u%U5?* z*_}zIl9}Y%qRSY_&=NIiweTLzlS!;CyOh2RE2#I>%2sB@Q3kkhb@t@b#Hu@c^1!HE zReGN$Gb^cQjym|1n&r~V_pEnKBk#yQqjPb@Zm*=GESM-ZD zc4(KY)RZ^aw%Am5Yt^%6tf?JhwXvV4rc|ob3|n>w9-b?e@{N{Cyz9^t!`>5(yyaP| zxwsXTtw!FmO-Q{Rho`UILr#{uc$V5HMSw-xXl2#iUvCE@tGhKjuBs|8c=buy+UHAF zXVqlOp`(baJ(}uvU~3#xx7L!|>nx4QCDo})W@AyRx~E9gu;LwUI~|d1wqsOwYZjNQ zMS7Gjk&7-HaLrh7DtqIo7r5_AqmEoNjK${1oS5RAMSc463!VGo9W3ZH0eu&{m7~aP4W2}6Fl{*;5$)}Kb1@ajr!*B$W z2aqHn_N1_|jD?3-Si!<0LPT;0k_;jnh>Rlg86rVMVu%bQl0amOh5r=$zQDe1?0bfN z&#~_X2_Z6wNF0$aiR9!FnIvSkUb2OW7n1@e!M?IG7f&`5~0v~2qF*=Vk7?Npq=*?4|0NYySNbhv@Sv5#?FiNf8PW_kUE2qF=4X< zg%AmJ%N__6F9f6u0*?;@Z#M*8JrMZ(gvel&c|cM?hF}2p$^saIeF0Gl29VqzkZ^A> z#Ps8EfO#8$gFs~ZAr_zthgo4=ha>F$ABLj2W z2nyo>6A1qVcV-{Wg5#gU;P}nt@!PXzW9B!EBJzk^O*6L!oi){aPZMA z?DVNHuA(TBvxh825E74gsxR~8LyuQJ)lXLd8;NX4ZlCHD8HEIi7(3tQ!6I`=PZf_p|xlhlVzfawT zG1%4S@7z0Up65~e9?Pe;5MYF;hS~g=hPa!sfm};rYHup|-h? zC{&O4B?>EIF##g}DF9COJkp;7RtYouO>RJi3S>WFUvV;*8GlTXa-T6HZYZSh3p)uW zKt5n!6b4)>JxDDIsf73tUZ07AB`FD5@1}TjE(1{n4_P9>3hM@dMYi)hd|DQ|2Y|EO zqmx%Z`5yqlkk5kwjy!IjXkVV3pKwLQQLG0C+lrl&=IawJdvgBT(Gv&PzT$(O)wA>} zWa(9qh$Qc+zLPkcZ1Si8AeYco3-Vk-Y76p85|V<6V2@i^H-t#KDBm7dzG6?ie4lK?u|0*sevut+6Q?@wP=7ZIZ)feSSxTqZV3T!C z^Q^Sq|L=G27%{*aLvZ_|m)CNV)pAH1H$vF~ZNM1F4r)WjV0K7TjiKzYcHJ1xj%ZA>h_)#@_CBb7?5^QV>V|#uElRo~^asI)( L&xHR1YV8z4 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/output.txt new file mode 100644 index 000000000..3deb15322 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/output.txt @@ -0,0 +1 @@ +(void 0).valueOf() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4c57194d7db046ce8ca6754b7e875beb65036a16 GIT binary patch literal 2586 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_3_rt/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/Test.as new file mode 100644 index 000000000..490fdc8f0 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/Test.as @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +import com.adobe.test.Utils; + +// var SECTION = "e11_2_3_4_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "Function Calls"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + try{ + null.valueOf(); + }catch(e:Error){ + thisError = e.toString(); + }finally{ + array[item++] = Assert.expectEq( + "null.valueOf()", + "TypeError: Error #1009", + Utils.typeError(thisError) ); + } + return array; +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/output.txt new file mode 100644 index 000000000..2d9c8265f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/output.txt @@ -0,0 +1 @@ +null.valueOf() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..67f5fe01e6155847dda60a94f82f60e29f0386b4 GIT binary patch literal 2582 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_4_rt/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/Test.as new file mode 100644 index 000000000..678295380 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/Test.as @@ -0,0 +1,25 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "e11_2_3_5_n"; +// var VERSION = "ECMA_1"; +// var TITLE = "Function Calls"; + + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "true.valueOf()", true, true.valueOf() ); + + return array; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/output.txt new file mode 100644 index 000000000..50ab21437 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/output.txt @@ -0,0 +1 @@ +true.valueOf() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_2_3_5/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..81cc0e2b928d4575a869514caf930e171c70c1e5 GIT binary patch literal 2441 zcmV;433m2FS5qb^4*&po+J#rmQya+@@1E(IR_g;aASAv$*en=4NCV#WuC+F{43Z7T z$QIzWy^B^OsRhc8J~A`HcvGoVQRPF9Ie4p*6RAq&vWFb@nyQ>~NL3CXYVA`lxg?ci z{sE_ZMu2dok^#-U{=JWW{oe15U>~5r1JLt(00tpgR)zoozv%x51mKoct|W8I8FjyA z*6k!)-JafcoMtkSc=_^W{N?p{!`eyA-@JJ(On;{hFhz;3!kd1EmK|47p{Bha`0B-gHCi1*4#y~9R8Cbb>#r^w%e0B}vkGHP@lgh8Aw zga?24<8S``?%Ty3fbTULCN=8vhGSLhJHAY-UgCSAy+*YxR_hMpfkJM>;^nH{G>uo} zQDd)4m&|Ijr_`v$jdG(%;|?>EQ?^YlN6r?1LQBrTMP<@c`ssd?DL1Va4R~V4Fm2j_ z*ITA}YVoQ`QPZ$(R57ZiwB=MyJMuwD7nC2THa61BKGl0p$eGm2T6(!(^_~-|7mt>c zs?QVCKkaOtwycH~XtI+#Icm2|N4~$7y_Z_+{j%X6LESMMMZ??Nt>LXWS)DhWj{|QL#f>Ttw-tg&2%o8%|%nzPK%F(yFpTQAL5=d`g4p>AE

xfNHbaN*+a>8GhRZ};?` zVO~@Qo~Cmvndh!L@|0TD%Bv5&cPyjm$|0lsaKt%1Nso0QW50Elov&q8J!5*habWL! z4}a6JY}$#&+FCMfY6o|y!>PB#7n0i|DP>v4tBKCMdo*B#NTfEdCl+-5MxxlNnohOe z<1li?*-kB*tz4bK9VzIMnC|gcRd1RQcJ3s4a1SWg`by8rTnajrzur9`_UuA*%ghV z?O$(rN;~dz8s1FGCav!{yRzLX+KvTjpzEa;I_0)oy&$jN=>#h*{Z^;iUZ6l1BC9(M zC#k9`C!+eOYS(xj)HyZX3Fs=4YOkhxlhIix)UEaOv&ZSB&GfSBvW5BBl&aoz#|=B# zHBMJ&B!`ue${v?+wO*$C*$O#hf6Q}Z$*Js{Kt01l7Y1nLqSXZ*?(kEx*-TR66^U8) zM`6@Ah@<|&(BOasB;dOhy%U2Hi1~*@d@X_D0U|;lLHr}Jn-K8fAVeV|^+@g$^}+!0 zg`vV^xleMR1q=lYMGO&!5{5E{7z+fW0ER&fdob+9FpQysVIPM57)3CSVmyf9Foq)- zk7786VH87#T*7by!z&nmgyA%XGZ)(0K?V5D;Q3{_CRM_l_Op2JY?bLhPq=2?BR^zv}+? zO%MdBI|&&Rwma|z%KUx87C9);CaimjFAbMdzFI?9PAM1rr^ui6jfc3(s z&%l^>?aFsS`C3if{w(tu7X;>w1Sq23BR#KZv0WwKrw#4)F<6o$5&ab&=_e=s5dco! zXz7R#04;OyF3g&$-9LEOZgWlhT=TZ0d8@&L5^A3euWD1nnUgG$yPu!E-ye?du1iaPy@7+e{KBVDQv_ z`}5=WNfBi~M@6JPjIc&bJ(y-Clw}!_UmWRQu*&Kb9@ij+?V3R0Nlm0s%hnKu>OoDS z&=kulFcY2z;7Bhb{RNmUNwfMj?mz_-W^RGk+?dPEe#|EoZZjwDC}bCf?K@0>e8E0w z5^$+G*n`J&1X&{Oq!y3Vw$xeVpR{3qdElb@Gz;WTh;p-p6 z_W)qXT14T86BpOM;*0IoC zl@8VeA(GDM+so)H_MX!B;WIe4>tk?OWbc)UBb`r2xQC^;y>{HLJj$-YHXD@oab>DLxl~7;LSxJ=W?2HIjW5t(R@sc8L|AJHe?Luhcwj~$`5Oojp6)=HffCHN3|(q zG(V@$zZXB6UO`AQ7 zGOJ+(2_gy~>Bp0xuvK|Fi4HSg2n-+S!k=~F(JuUX7ar@vUv%MvUHF$>_)r)ARTnQG^Bcdpx0ftwewtG0mCP6!s7heC!Usa + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/output.txt new file mode 100644 index 000000000..52c41cee2 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/output.txt @@ -0,0 +1,58 @@ +var MYVAR; MYVAR++ PASSED! +var MYVAR= void 0; MYVAR++ PASSED! +var MYVAR=null; MYVAR++ PASSED! +var MYVAR=true; MYVAR++ PASSED! +var MYVAR=false; MYVAR++ PASSED! +var MYVAR=Number.POSITIVE_INFINITY;MYVAR++ PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;MYVAR++ PASSED! +var MYVAR=Number.NaN;MYVAR++ PASSED! +var MYVAR=Number.POSITIVE_INFINITY;MYVAR++;MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;MYVAR++;MYVAR PASSED! +var MYVAR=Number.NaN;MYVAR++;MYVAR PASSED! +var MYVAR=0;MYVAR++ PASSED! +var MYVAR=0.2345;MYVAR++ PASSED! +var MYVAR=-0.2345;MYVAR++ PASSED! +var MYVAR=0;MYVAR++;MYVAR PASSED! +var MYVAR=0.2345;MYVAR++;MYVAR PASSED! +var MYVAR=-0.2345;MYVAR++;MYVAR PASSED! +var MYVAR=0;MYVAR++;MYVAR PASSED! +var MYVAR=0;MYVAR++;MYVAR PASSED! +var MYVAR=0;MYVAR++;MYVAR PASSED! +var MYVAR=true;MYVAR++ PASSED! +var MYVAR=false;MYVAR++ PASSED! +var MYVAR=true;MYVAR++;MYVAR PASSED! +var MYVAR=false;MYVAR++;MYVAR PASSED! +var MYVAR=new Boolean(true);MYVAR++ PASSED! +var MYVAR=new Boolean(false);MYVAR++ PASSED! +var MYVAR=new Boolean(true);MYVAR++;MYVAR PASSED! +var MYVAR=new Boolean(false);MYVAR++;MYVAR PASSED! +var MYVAR='string'; MYVAR++ PASSED! +var MYVAR='12345';MYVAR++ PASSED! +var MYVAR='-12345';MYVAR++ PASSED! +var MYVAR='0Xf';MYVAR++ PASSED! +var MYVAR='077';MYVAR++ PASSED! +var MYVAR=''; MYVAR++ PASSED! +var MYVAR='string';MYVAR++;MYVAR PASSED! +var MYVAR='12345';MYVAR++;MYVAR PASSED! +var MYVAR='-12345';MYVAR++;MYVAR PASSED! +var MYVAR='0xf';MYVAR++;MYVAR PASSED! +var MYVAR='077';MYVAR++;MYVAR PASSED! +var MYVAR='';MYVAR++;MYVAR PASSED! +var MYVAR=new String('string');MYVAR++ PASSED! +var MYVAR=new String('12345');MYVAR++ PASSED! +var MYVAR=new String('-12345');MYVAR++ PASSED! +var MYVAR=new String('0Xf');MYVAR++ PASSED! +var MYVAR=new String('077');MYVAR++ PASSED! +var MYVAR=new String(''); MYVAR++ PASSED! +var MYVAR=new String('string');MYVAR++;MYVAR PASSED! +var MYVAR=new String('12345');MYVAR++;MYVAR PASSED! +var MYVAR=new String('-12345');MYVAR++;MYVAR PASSED! +var MYVAR=new String('0xf');MYVAR++;MYVAR PASSED! +var MYVAR=new String('077');MYVAR++;MYVAR PASSED! +var MYVAR=new String('');MYVAR++;MYVAR PASSED! +increment a string in array PASSED! +increment a null in array PASSED! +increment a undefined in array PASSED! +increment a number in array PASSED! +increment a non-existant object property PASSED! +increment an object property PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..e25c748906935398cbb8f01e804298302fad80b2 GIT binary patch literal 3754 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 UVyT(E9h(1Xc?~B24_x<5L@*d&1ONa4 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/Test.as new file mode 100644 index 000000000..bdf23ea7f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/Test.as @@ -0,0 +1,198 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_3_2"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // special numbers + var MYVAR; + array[item++] = Assert.expectEq( "var MYVAR; MYVAR--", NaN, MYVAR-- ); + var MYVAR = void 0; + array[item++] = Assert.expectEq( "var MYVAR= void 0; MYVAR--", NaN, MYVAR-- ); + var MYVAR=null; + array[item++] = Assert.expectEq( "var MYVAR=null; MYVAR--", 0, MYVAR-- ); + var MYVAR=true; + array[item++] = Assert.expectEq( "var MYVAR=true; MYVAR--", 1, MYVAR-- ); + var MYVAR=false; + array[item++] = Assert.expectEq( "var MYVAR=false; MYVAR--", 0, MYVAR-- ); + + // verify return value + var MYVAR=Number.POSITIVE_INFINITY; + array[item++] = Assert.expectEq( "var MYVAR=Number.POSITIVE_INFINITY; MYVAR--", Number.POSITIVE_INFINITY, MYVAR-- ); + var MYVAR=Number.NEGATIVE_INFINITY; + array[item++] = Assert.expectEq( "var MYVAR=Number.NEGATIVE_INFINITY;MYVAR--", Number.NEGATIVE_INFINITY, MYVAR-- ); + var MYVAR=Number.NaN; + array[item++] = Assert.expectEq( "var MYVAR=Number.NaN;MYVAR--", Number.NaN, MYVAR-- ); + + // verify value of variable + var MYVAR=Number.POSITIVE_INFINITY; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=Number.POSITIVE_INFINITY;MYVAR--;MYVAR", Number.POSITIVE_INFINITY, MYVAR ); + + var MYVAR=Number.NEGATIVE_INFINITY; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=Number.NEGATIVE_INFINITY;MYVAR--;MYVAR", Number.NEGATIVE_INFINITY, MYVAR ); + + var MYVAR=Number.NaN; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=Number.NaN;MYVAR--;MYVAR", Number.NaN, MYVAR ); + + // number primitives + var MYVAR = 0; + array[item++] = Assert.expectEq( "var MYVAR=0;MYVAR--", 0, MYVAR-- ); + var MYVAR = 0.2345; + array[item++] = Assert.expectEq( "var MYVAR=0.2345;MYVAR--", 0.2345, MYVAR-- ); + var MYVAR = -0.2345; + array[item++] = Assert.expectEq( "var MYVAR=-0.2345;MYVAR--", -0.2345, MYVAR-- ); + + // verify value of variable + var MYVAR=0; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=0;MYVAR--;MYVAR", -1, MYVAR ); + + var MYVAR=0.2345; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=0.2345;MYVAR--;MYVAR", -0.7655000000000001, MYVAR ); + + var MYVAR=-0.2345; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=-0.2345;MYVAR--;MYVAR", -1.2345, MYVAR ); + + var MYVAR=0; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=0;MYVAR--;MYVAR", -1, MYVAR ); + + var MYVAR=0; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=0;MYVAR--;MYVAR", -1, MYVAR ); + + var MYVAR=0; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=0;MYVAR--;MYVAR", -1, MYVAR ); + + // boolean values + // verify return value + var MYVAR=true; + array[item++] = Assert.expectEq( "var MYVAR=true;MYVAR--", 1, MYVAR-- ); + var MYVAR=false; + array[item++] = Assert.expectEq( "var MYVAR=false;MYVAR--", 0, MYVAR-- ); + // verify value of variable + + var MYVAR=true; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=true;MYVAR--;MYVAR", 0, MYVAR ); + var MYVAR=false; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=false;MYVAR--;MYVAR", -1, MYVAR ); + + // boolean objects + // verify return value + var MYVAR=new Boolean(true); + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(true);MYVAR--", 1, MYVAR-- ); + var MYVAR=new Boolean(false); + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(false);MYVAR--", 0, MYVAR-- ); + // verify value of variable + var MYVAR=new Boolean(true); + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(true);MYVAR--;MYVAR", 0, MYVAR ); + var MYVAR=new Boolean(false); + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(false);MYVAR--;MYVAR", -1, MYVAR ); + + // string primitives + var MYVAR='string'; + array[item++] = Assert.expectEq( "var MYVAR='string';MYVAR--", Number.NaN, MYVAR-- ); + var MYVAR='12345'; + array[item++] = Assert.expectEq( "var MYVAR='12345';MYVAR--", 12345, MYVAR-- ); + var MYVAR='-12345'; + array[item++] = Assert.expectEq( "var MYVAR='-12345';MYVAR--", -12345, MYVAR-- ); + var MYVAR='0Xf'; + array[item++] = Assert.expectEq( "var MYVAR='0Xf';MYVAR--", 15, MYVAR-- ); + var MYVAR='077'; + array[item++] = Assert.expectEq( "var MYVAR='077';MYVAR--", 77, MYVAR-- ); + var MYVAR=''; + array[item++] = Assert.expectEq( "var MYVAR=''; MYVAR--", 0, MYVAR-- ); + + // verify value of variable + var MYVAR='string'; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='string';MYVAR--;MYVAR", Number.NaN, MYVAR ); + var MYVAR='12345'; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='12345';MYVAR--;MYVAR", 12344, MYVAR ); + var MYVAR='-12345'; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='-12345';MYVAR--;MYVAR", -12346, MYVAR ); + var MYVAR='0xf'; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='0xf';MYVAR--;MYVAR", 14, MYVAR ); + var MYVAR='077'; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='077';MYVAR--;MYVAR", 76, MYVAR ); + var MYVAR=''; + MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR='';MYVAR--;MYVAR", -1, MYVAR ); + + // string objects + var MYVAR=new String('string'); + array[item++] = Assert.expectEq( "var MYVAR=new String('string');MYVAR--", Number.NaN, MYVAR-- ); + var MYVAR=new String('12345'); + array[item++] = Assert.expectEq( "var MYVAR=new String('12345');MYVAR--", 12345, MYVAR-- ); + + var MYVAR=new String('-12345'); + array[item++] = Assert.expectEq( "var MYVAR=new String('-12345');MYVAR--", -12345, MYVAR-- ); + var MYVAR=new String('0Xf'); + array[item++] = Assert.expectEq( "var MYVAR=new String('0Xf');MYVAR--", 15, MYVAR-- ); + var MYVAR=new String('077'); + array[item++] = Assert.expectEq( "var MYVAR=new String('077');MYVAR--", 77, MYVAR-- ); + var MYVAR=new String(''); + array[item++] = Assert.expectEq( "var MYVAR=new String(''); MYVAR--", 0, MYVAR-- ); + + // verify value of variable + var MYVAR=new String('string');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('string');MYVAR--;MYVAR", Number.NaN, MYVAR ); + var MYVAR=new String('12345');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('12345');MYVAR--;MYVAR", 12344, MYVAR ); + var MYVAR=new String('-12345');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('-12345');MYVAR--;MYVAR", -12346, MYVAR ); + var MYVAR=new String('0xf');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('0xf');MYVAR--;MYVAR", 14, MYVAR ); + var MYVAR=new String('077');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('077');MYVAR--;MYVAR", 76, MYVAR ); + var MYVAR=new String('');MYVAR--; + array[item++] = Assert.expectEq( "var MYVAR=new String('');MYVAR--;MYVAR", -1, MYVAR ); + + // array elements + var MYVAR = ["string", null, undefined, 300]; + MYVAR[0]--; + array[item++] = Assert.expectEq( "decrement a string in array", Number.NaN, MYVAR[0]); + + MYVAR[1]--; + array[item++] = Assert.expectEq( "decrement a null in array", -1, MYVAR[1]); + + MYVAR[2]--; + array[item++] = Assert.expectEq( "decrement a undefined in array", Number.NaN, MYVAR[2]); + + MYVAR[3]--; + array[item++] = Assert.expectEq( "decrement a number in array", 299, MYVAR[3]); + + // object + var o = {"num":22}; + o.x--; + array[item++] = Assert.expectEq( "decrement a non-existant object property", Number.NaN, o.x); + o.num--; + array[item++] = Assert.expectEq( "decrement an object property", 21, o.num); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/output.txt new file mode 100644 index 000000000..03184e7a7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/output.txt @@ -0,0 +1,58 @@ +var MYVAR; MYVAR-- PASSED! +var MYVAR= void 0; MYVAR-- PASSED! +var MYVAR=null; MYVAR-- PASSED! +var MYVAR=true; MYVAR-- PASSED! +var MYVAR=false; MYVAR-- PASSED! +var MYVAR=Number.POSITIVE_INFINITY; MYVAR-- PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;MYVAR-- PASSED! +var MYVAR=Number.NaN;MYVAR-- PASSED! +var MYVAR=Number.POSITIVE_INFINITY;MYVAR--;MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;MYVAR--;MYVAR PASSED! +var MYVAR=Number.NaN;MYVAR--;MYVAR PASSED! +var MYVAR=0;MYVAR-- PASSED! +var MYVAR=0.2345;MYVAR-- PASSED! +var MYVAR=-0.2345;MYVAR-- PASSED! +var MYVAR=0;MYVAR--;MYVAR PASSED! +var MYVAR=0.2345;MYVAR--;MYVAR PASSED! +var MYVAR=-0.2345;MYVAR--;MYVAR PASSED! +var MYVAR=0;MYVAR--;MYVAR PASSED! +var MYVAR=0;MYVAR--;MYVAR PASSED! +var MYVAR=0;MYVAR--;MYVAR PASSED! +var MYVAR=true;MYVAR-- PASSED! +var MYVAR=false;MYVAR-- PASSED! +var MYVAR=true;MYVAR--;MYVAR PASSED! +var MYVAR=false;MYVAR--;MYVAR PASSED! +var MYVAR=new Boolean(true);MYVAR-- PASSED! +var MYVAR=new Boolean(false);MYVAR-- PASSED! +var MYVAR=new Boolean(true);MYVAR--;MYVAR PASSED! +var MYVAR=new Boolean(false);MYVAR--;MYVAR PASSED! +var MYVAR='string';MYVAR-- PASSED! +var MYVAR='12345';MYVAR-- PASSED! +var MYVAR='-12345';MYVAR-- PASSED! +var MYVAR='0Xf';MYVAR-- PASSED! +var MYVAR='077';MYVAR-- PASSED! +var MYVAR=''; MYVAR-- PASSED! +var MYVAR='string';MYVAR--;MYVAR PASSED! +var MYVAR='12345';MYVAR--;MYVAR PASSED! +var MYVAR='-12345';MYVAR--;MYVAR PASSED! +var MYVAR='0xf';MYVAR--;MYVAR PASSED! +var MYVAR='077';MYVAR--;MYVAR PASSED! +var MYVAR='';MYVAR--;MYVAR PASSED! +var MYVAR=new String('string');MYVAR-- PASSED! +var MYVAR=new String('12345');MYVAR-- PASSED! +var MYVAR=new String('-12345');MYVAR-- PASSED! +var MYVAR=new String('0Xf');MYVAR-- PASSED! +var MYVAR=new String('077');MYVAR-- PASSED! +var MYVAR=new String(''); MYVAR-- PASSED! +var MYVAR=new String('string');MYVAR--;MYVAR PASSED! +var MYVAR=new String('12345');MYVAR--;MYVAR PASSED! +var MYVAR=new String('-12345');MYVAR--;MYVAR PASSED! +var MYVAR=new String('0xf');MYVAR--;MYVAR PASSED! +var MYVAR=new String('077');MYVAR--;MYVAR PASSED! +var MYVAR=new String('');MYVAR--;MYVAR PASSED! +decrement a string in array PASSED! +decrement a null in array PASSED! +decrement a undefined in array PASSED! +decrement a number in array PASSED! +decrement a non-existant object property PASSED! +decrement an object property PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_3_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..674abbef1a1cc4cfd2fcb287817c6c201c07b6c4 GIT binary patch literal 4103 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/output.txt new file mode 100644 index 000000000..5614d4fb7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/output.txt @@ -0,0 +1,18 @@ +x=[9,8,7];delete(x[2]);x.length PASSED! +x=[9,8,7];delete(x[2]);x.toString() PASSED! +obj=new Object();delete obj.name; PASSED! +obj=new Object();delete obj;obj.toString() PASSED! +delete(new String( 'string object' ) ) PASSED! +delete(new Number(12345)) PASSED! +delete(Math.PI) PASSED! +delete(x=new Date()) PASSED! +var abc; delete abc PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject(); for ( p in OB ) { delete OB[p] } PASSED! +var OB = new MyObject();delete OB; OB.toString() PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..6597c0ae8f92fb7f66e61290b0d3bc8117078b3d GIT binary patch literal 3109 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_1/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/Test.as new file mode 100644 index 000000000..ac8a67ee8 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/Test.as @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_4_2"; +// var VERSION = "ECMA_1"; +// var TITLE = "The void operator"; + + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "void(new String('string object'))", void 0, void(new String( 'string object' )) ); + array[item++] = Assert.expectEq( "void('string primitive')", void 0, void("string primitive") ); + array[item++] = Assert.expectEq( "void(Number.NaN)", void 0, void(Number.NaN) ); + array[item++] = Assert.expectEq( "void(Number.POSITIVE_INFINITY)", void 0, void(Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "void(1)", void 0, void(1) ); + array[item++] = Assert.expectEq( "void(0)", void 0, void(0) ); + array[item++] = Assert.expectEq( "void(-1)", void 0, void(-1) ); + array[item++] = Assert.expectEq( "void(Number.NEGATIVE_INFINITY)", void 0, void(Number.NEGATIVE_INFINITY) ); + array[item++] = Assert.expectEq( "void(Math.PI)", void 0, void(Math.PI) ); + array[item++] = Assert.expectEq( "void(true)", void 0, void(true) ); + array[item++] = Assert.expectEq( "void(false)", void 0, void(false) ); + array[item++] = Assert.expectEq( "void(null)", void 0, void(null) ); + array[item++] = Assert.expectEq( "void new String('string object')", void 0, void new String( 'string object' ) ); + array[item++] = Assert.expectEq( "void 'string primitive'", void 0, void "string primitive" ); + array[item++] = Assert.expectEq( "void Number.NaN", void 0, void Number.NaN ); + array[item++] = Assert.expectEq( "void Number.POSITIVE_INFINITY", void 0, void Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "void 1", void 0, void 1 ); + array[item++] = Assert.expectEq( "void 0", void 0, void 0 ); + array[item++] = Assert.expectEq( "void -1", void 0, void -1 ); + array[item++] = Assert.expectEq( "void Number.NEGATIVE_INFINITY", void 0, void Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "void Math.PI", void 0, void Math.PI ); + array[item++] = Assert.expectEq( "void true", void 0, void true ); + array[item++] = Assert.expectEq( "void false", void 0, void false ); + array[item++] = Assert.expectEq( "void null", void 0, void null ); + +// array[item++] = Assert.expectEq( "void()", void 0, void() ); + + return ( array ); +} + +function test() { + for ( i = 0; i < testcases.length; i++ ) { + testcases[i].passed = writeTestCaseResult( + testcases[i].expect, + testcases[i].actual, + testcases[i].description +" = "+ testcases[i].actual ); + testcases[i].reason += ( testcases[i].passed ) ? "" : "wrong value " + } + stopTest(); + return ( testcases ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/output.txt new file mode 100644 index 000000000..c3e4e2906 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/output.txt @@ -0,0 +1,24 @@ +void(new String('string object')) PASSED! +void('string primitive') PASSED! +void(Number.NaN) PASSED! +void(Number.POSITIVE_INFINITY) PASSED! +void(1) PASSED! +void(0) PASSED! +void(-1) PASSED! +void(Number.NEGATIVE_INFINITY) PASSED! +void(Math.PI) PASSED! +void(true) PASSED! +void(false) PASSED! +void(null) PASSED! +void new String('string object') PASSED! +void 'string primitive' PASSED! +void Number.NaN PASSED! +void Number.POSITIVE_INFINITY PASSED! +void 1 PASSED! +void 0 PASSED! +void -1 PASSED! +void Number.NEGATIVE_INFINITY PASSED! +void Math.PI PASSED! +void true PASSED! +void false PASSED! +void null PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..e62fb3d391389cba97ecc07a974abc7164fde3f1 GIT binary patch literal 3151 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/output.txt new file mode 100644 index 000000000..2da7c920f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/output.txt @@ -0,0 +1,52 @@ +var MYVAR; ++MYVAR PASSED! +var MYVAR= void 0; ++MYVAR PASSED! +var MYVAR=null; ++MYVAR PASSED! +var MYVAR=true; ++MYVAR PASSED! +var MYVAR=false; ++MYVAR PASSED! +var MYVAR=Number.POSITIVE_INFINITY;++MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;++MYVAR PASSED! +var MYVAR=Number.NaN;++MYVAR PASSED! +var MYVAR=Number.POSITIVE_INFINITY;++MYVAR;MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;++MYVAR;MYVAR PASSED! +var MYVAR=Number.NaN;++MYVAR;MYVAR PASSED! +var MYVAR=0;++MYVAR PASSED! +var MYVAR=0.2345;++MYVAR PASSED! +var MYVAR=-0.2345;++MYVAR PASSED! +var MYVAR=0;++MYVAR;MYVAR PASSED! +var MYVAR=0.2345;++MYVAR;MYVAR PASSED! +var MYVAR=-0.2345;++MYVAR;MYVAR PASSED! +var MYVAR=0;++MYVAR;MYVAR PASSED! +var MYVAR=0;++MYVAR;MYVAR PASSED! +var MYVAR=0;++MYVAR;MYVAR PASSED! +var MYVAR=true;++MYVAR PASSED! +var MYVAR=false;++MYVAR PASSED! +var MYVAR=true;++MYVAR;MYVAR PASSED! +var MYVAR=false;++MYVAR;MYVAR PASSED! +var MYVAR=new Boolean(true);++MYVAR PASSED! +var MYVAR=new Boolean(false);++MYVAR PASSED! +var MYVAR=new Boolean(true);++MYVAR;MYVAR PASSED! +var MYVAR=new Boolean(false);++MYVAR;MYVAR PASSED! +var MYVAR='string';++MYVAR PASSED! +var MYVAR='12345';++MYVAR PASSED! +var MYVAR='-12345';++MYVAR PASSED! +var MYVAR='0Xf';++MYVAR PASSED! +var MYVAR='077';++MYVAR PASSED! +var MYVAR=''; ++MYVAR PASSED! +var MYVAR='string';++MYVAR;MYVAR PASSED! +var MYVAR='12345';++MYVAR;MYVAR PASSED! +var MYVAR='-12345';++MYVAR;MYVAR PASSED! +var MYVAR='0xf';++MYVAR;MYVAR PASSED! +var MYVAR='077';++MYVAR;MYVAR PASSED! +var MYVAR='';++MYVAR;MYVAR PASSED! +var MYVAR=new String('string');++MYVAR PASSED! +var MYVAR=new String('12345');++MYVAR PASSED! +var MYVAR=new String('-12345');++MYVAR PASSED! +var MYVAR=new String('0Xf');++MYVAR PASSED! +var MYVAR=new String('077');++MYVAR PASSED! +var MYVAR=new String(''); ++MYVAR PASSED! +var MYVAR=new String('string');++MYVAR;MYVAR PASSED! +var MYVAR=new String('12345');++MYVAR;MYVAR PASSED! +var MYVAR=new String('-12345');++MYVAR;MYVAR PASSED! +var MYVAR=new String('0xf');++MYVAR;MYVAR PASSED! +var MYVAR=new String('077');++MYVAR;MYVAR PASSED! +var MYVAR=new String('');++MYVAR;MYVAR PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..b54a89afacbc772524017aa43079bb8f47a5bf84 GIT binary patch literal 3758 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_4/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/Test.as new file mode 100644 index 000000000..a92565614 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/Test.as @@ -0,0 +1,151 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_4_5"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // + var MYVAR; + array[item++] = Assert.expectEq( "var MYVAR; --MYVAR", NaN, --MYVAR ); + var MYVAR=void 0; + array[item++] = Assert.expectEq( "var MYVAR= void 0; --MYVAR", NaN, --MYVAR ); + var MYVAR=null; + array[item++] = Assert.expectEq( "var MYVAR=null; --MYVAR", -1, --MYVAR ); + var MYVAR=true; + array[item++] = Assert.expectEq( "var MYVAR=true; --MYVAR", 0, --MYVAR ); + var MYVAR=false; + array[item++] = Assert.expectEq( "var MYVAR=false; --MYVAR", -1, --MYVAR ); + + // special numbers + // verify return value + var MYVAR=Number.POSITIVE_INFINITY; + array[item++] = Assert.expectEq( "var MYVAR=Number.POSITIVE_INFINITY;--MYVAR", Number.POSITIVE_INFINITY, --MYVAR ); + var MYVAR=Number.NEGATIVE_INFINITY; + array[item++] = Assert.expectEq( "var MYVAR=Number.NEGATIVE_INFINITY;--MYVAR", Number.NEGATIVE_INFINITY, --MYVAR ); + var MYVAR=Number.NaN; + array[item++] = Assert.expectEq( "var MYVAR=Number.NaN;--MYVAR", Number.NaN, --MYVAR ); + + // verify value of variable + var MYVAR=Number.POSITIVE_INFINITY;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=Number.POSITIVE_INFINITY;--MYVAR;MYVAR", Number.POSITIVE_INFINITY, MYVAR ); + var MYVAR=Number.NEGATIVE_INFINITY;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=Number.NEGATIVE_INFINITY;--MYVAR;MYVAR", Number.NEGATIVE_INFINITY, MYVAR ); + var MYVAR=Number.NaN;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=Number.NaN;--MYVAR;MYVAR", Number.NaN, MYVAR ); + + + // number primitives + var MYVAR=0; + array[item++] = Assert.expectEq( "var MYVAR=0;--MYVAR", -1, --MYVAR ); + var MYVAR=0.2345; + array[item++] = Assert.expectEq( "var MYVAR=0.2345;--MYVAR", -0.7655000000000001, --MYVAR ); + var MYVAR=-0.2345; + array[item++] = Assert.expectEq( "var MYVAR=-0.2345;--MYVAR", -1.2345, --MYVAR ); + + // verify value of variable + var MYVAR=0;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=0;--MYVAR;MYVAR", -1, MYVAR ); + var MYVAR=0.2345;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=0.2345;--MYVAR;MYVAR", -0.7655000000000001, MYVAR ); + var MYVAR=-0.2345;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=-0.2345;--MYVAR;MYVAR", -1.2345, MYVAR ); + var MYVAR=0;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=0;--MYVAR;MYVAR", -1, MYVAR ); + var MYVAR=0;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=0;--MYVAR;MYVAR", -1, MYVAR ); + var MYVAR=0;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=0;--MYVAR;MYVAR", -1, MYVAR ); + + // boolean values + // verify return value + var MYVAR=true; + array[item++] = Assert.expectEq( "var MYVAR=true;--MYVAR", 0, --MYVAR ); + var MYVAR=false; + array[item++] = Assert.expectEq( "var MYVAR=false;--MYVAR", -1, --MYVAR ); + // verify value of variable + var MYVAR=true;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=true;--MYVAR;MYVAR", 0, MYVAR ); + var MYVAR=false;--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=false;--MYVAR;MYVAR", -1, MYVAR ); + + // boolean objects + // verify return value + var MYVAR=true; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(true);--MYVAR", 0, --MYVAR ); + var MYVAR=false; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(false);--MYVAR", -1, --MYVAR ); + // verify value of variable + var MYVAR=new Boolean(true);--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(true);--MYVAR;MYVAR", 0, MYVAR ); + var MYVAR=new Boolean(false);--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new Boolean(false);--MYVAR;MYVAR", -1, MYVAR ); + + // string primitives + var MYVAR='string'; + array[item++] = Assert.expectEq( "var MYVAR='string';--MYVAR", Number.NaN, --MYVAR ); + var MYVAR='12345'; + array[item++] = Assert.expectEq( "var MYVAR='12345';--MYVAR", 12344, --MYVAR ); + var MYVAR='-12345'; + array[item++] = Assert.expectEq( "var MYVAR='-12345';--MYVAR", -12346, --MYVAR ); + var MYVAR='0Xf'; + array[item++] = Assert.expectEq( "var MYVAR='0Xf';--MYVAR", 14, --MYVAR ); + var MYVAR='077'; + array[item++] = Assert.expectEq( "var MYVAR='077';--MYVAR", 76, --MYVAR ); + var MYVAR=''; + array[item++] = Assert.expectEq( "var MYVAR=''; --MYVAR", -1, --MYVAR ); + + // verify value of variable + var MYVAR='string';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='string';--MYVAR;MYVAR", Number.NaN, MYVAR ); + var MYVAR='12345';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='12345';--MYVAR;MYVAR", 12344, MYVAR ); + var MYVAR='-12345';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='-12345';--MYVAR;MYVAR", -12346, MYVAR ); + var MYVAR='0xf';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='0xf';--MYVAR;MYVAR", 14, MYVAR ); + var MYVAR='077';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='077';--MYVAR;MYVAR", 76, MYVAR ); + var MYVAR='';--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR='';--MYVAR;MYVAR", -1, MYVAR ); + + // string objects + var MYVAR=new String('string'); + array[item++] = Assert.expectEq( "var MYVAR=new String('string');--MYVAR", Number.NaN, --MYVAR ); + var MYVAR=new String('12345'); + array[item++] = Assert.expectEq( "var MYVAR=new String('12345');--MYVAR", 12344, --MYVAR ); + var MYVAR=new String('-12345'); + array[item++] = Assert.expectEq( "var MYVAR=new String('-12345');--MYVAR", -12346, --MYVAR ); + var MYVAR=new String('0Xf'); + array[item++] = Assert.expectEq( "var MYVAR=new String('0Xf');--MYVAR", 14, --MYVAR ); + var MYVAR=new String('077'); + array[item++] = Assert.expectEq( "var MYVAR=new String('077');--MYVAR", 76, --MYVAR ); + var MYVAR=new String(''); + array[item++] = Assert.expectEq( "var MYVAR=new String(''); --MYVAR", -1, --MYVAR ); + + // verify value of variable + var MYVAR=new String('string');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('string');--MYVAR;MYVAR", Number.NaN, MYVAR ); + var MYVAR=new String('12345');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('12345');--MYVAR;MYVAR", 12344, MYVAR ); + var MYVAR=new String('-12345');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('-12345');--MYVAR;MYVAR", -12346, MYVAR ); + var MYVAR=new String('0xf');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('0xf');--MYVAR;MYVAR", 14, MYVAR ); + var MYVAR=new String('077');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('077');--MYVAR;MYVAR", 76, MYVAR ); + var MYVAR=new String('');--MYVAR; + array[item++] = Assert.expectEq( "var MYVAR=new String('');--MYVAR;MYVAR", -1, MYVAR ); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/output.txt new file mode 100644 index 000000000..c30ebec8f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/output.txt @@ -0,0 +1,52 @@ +var MYVAR; --MYVAR PASSED! +var MYVAR= void 0; --MYVAR PASSED! +var MYVAR=null; --MYVAR PASSED! +var MYVAR=true; --MYVAR PASSED! +var MYVAR=false; --MYVAR PASSED! +var MYVAR=Number.POSITIVE_INFINITY;--MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;--MYVAR PASSED! +var MYVAR=Number.NaN;--MYVAR PASSED! +var MYVAR=Number.POSITIVE_INFINITY;--MYVAR;MYVAR PASSED! +var MYVAR=Number.NEGATIVE_INFINITY;--MYVAR;MYVAR PASSED! +var MYVAR=Number.NaN;--MYVAR;MYVAR PASSED! +var MYVAR=0;--MYVAR PASSED! +var MYVAR=0.2345;--MYVAR PASSED! +var MYVAR=-0.2345;--MYVAR PASSED! +var MYVAR=0;--MYVAR;MYVAR PASSED! +var MYVAR=0.2345;--MYVAR;MYVAR PASSED! +var MYVAR=-0.2345;--MYVAR;MYVAR PASSED! +var MYVAR=0;--MYVAR;MYVAR PASSED! +var MYVAR=0;--MYVAR;MYVAR PASSED! +var MYVAR=0;--MYVAR;MYVAR PASSED! +var MYVAR=true;--MYVAR PASSED! +var MYVAR=false;--MYVAR PASSED! +var MYVAR=true;--MYVAR;MYVAR PASSED! +var MYVAR=false;--MYVAR;MYVAR PASSED! +var MYVAR=new Boolean(true);--MYVAR PASSED! +var MYVAR=new Boolean(false);--MYVAR PASSED! +var MYVAR=new Boolean(true);--MYVAR;MYVAR PASSED! +var MYVAR=new Boolean(false);--MYVAR;MYVAR PASSED! +var MYVAR='string';--MYVAR PASSED! +var MYVAR='12345';--MYVAR PASSED! +var MYVAR='-12345';--MYVAR PASSED! +var MYVAR='0Xf';--MYVAR PASSED! +var MYVAR='077';--MYVAR PASSED! +var MYVAR=''; --MYVAR PASSED! +var MYVAR='string';--MYVAR;MYVAR PASSED! +var MYVAR='12345';--MYVAR;MYVAR PASSED! +var MYVAR='-12345';--MYVAR;MYVAR PASSED! +var MYVAR='0xf';--MYVAR;MYVAR PASSED! +var MYVAR='077';--MYVAR;MYVAR PASSED! +var MYVAR='';--MYVAR;MYVAR PASSED! +var MYVAR=new String('string');--MYVAR PASSED! +var MYVAR=new String('12345');--MYVAR PASSED! +var MYVAR=new String('-12345');--MYVAR PASSED! +var MYVAR=new String('0Xf');--MYVAR PASSED! +var MYVAR=new String('077');--MYVAR PASSED! +var MYVAR=new String(''); --MYVAR PASSED! +var MYVAR=new String('string');--MYVAR;MYVAR PASSED! +var MYVAR=new String('12345');--MYVAR;MYVAR PASSED! +var MYVAR=new String('-12345');--MYVAR;MYVAR PASSED! +var MYVAR=new String('0xf');--MYVAR;MYVAR PASSED! +var MYVAR=new String('077');--MYVAR;MYVAR PASSED! +var MYVAR=new String('');--MYVAR;MYVAR PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_5/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..0e71710525a8aa348d44ed07cb0fe341d6b01ba0 GIT binary patch literal 3757 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/output.txt new file mode 100644 index 000000000..b63ab0740 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/output.txt @@ -0,0 +1,190 @@ ++('a string') PASSED! ++('') PASSED! ++(' ') PASSED! ++(\t) PASSED! ++(\n) PASSED! ++(\r) PASSED! ++(\f) PASSED! ++(String.fromCharCode(0x0009) PASSED! ++(String.fromCharCode(0x0020) PASSED! ++(String.fromCharCode(0x000C) PASSED! ++(String.fromCharCode(0x000B) PASSED! ++(String.fromCharCode(0x000D) PASSED! ++(String.fromCharCode(0x000A) PASSED! ++( ' ' + 999 ) PASSED! ++( '\n' + 999 ) PASSED! ++( '\r' + 999 ) PASSED! ++( '\t' + 999 ) PASSED! ++( '\f' + 999 ) PASSED! ++( 999 + ' ' ) PASSED! ++( 999 + '\n' ) PASSED! ++( 999 + '\r' ) PASSED! ++( 999 + '\t' ) PASSED! ++( 999 + '\f' ) PASSED! ++( '\n' + 999 + '\n' ) PASSED! ++( '\r' + 999 + '\r' ) PASSED! ++( '\t' + 999 + '\t' ) PASSED! ++( '\f' + 999 + '\f' ) PASSED! ++( ' ' + '999' ) PASSED! ++( '\n' + '999' ) PASSED! ++( '\r' + '999' ) PASSED! ++( '\t' + '999' ) PASSED! ++( '\f' + '999' ) PASSED! ++( '999' + ' ' ) PASSED! ++( '999' + '\n' ) PASSED! ++( '999' + '\r' ) PASSED! ++( '999' + '\t' ) PASSED! ++( '999' + '\f' ) PASSED! ++( '\n' + '999' + '\n' ) PASSED! ++( '\r' + '999' + '\r' ) PASSED! ++( '\t' + '999' + '\t' ) PASSED! ++( '\f' + '999' + '\f' ) PASSED! ++( String.fromCharCode(0x0009) + '99' ) PASSED! ++( String.fromCharCode(0x0020) + '99' ) PASSED! ++( String.fromCharCode(0x000C) + '99' ) PASSED! ++( String.fromCharCode(0x000B) + '99' ) PASSED! ++( String.fromCharCode(0x000D) + '99' ) PASSED! ++( String.fromCharCode(0x000A) + '99' ) PASSED! ++( String.fromCharCode(0x0009) + '99' + String.fromCharCode(0x0009) PASSED! ++( String.fromCharCode(0x0020) + '99' + String.fromCharCode(0x0020) PASSED! ++( String.fromCharCode(0x000C) + '99' + String.fromCharCode(0x000C) PASSED! ++( String.fromCharCode(0x000D) + '99' + String.fromCharCode(0x000D) PASSED! ++( String.fromCharCode(0x000B) + '99' + String.fromCharCode(0x000B) PASSED! ++( String.fromCharCode(0x000A) + '99' + String.fromCharCode(0x000A) PASSED! ++( '99' + String.fromCharCode(0x0009) PASSED! ++( '99' + String.fromCharCode(0x0020) PASSED! ++( '99' + String.fromCharCode(0x000C) PASSED! ++( '99' + String.fromCharCode(0x000D) PASSED! ++( '99' + String.fromCharCode(0x000B) PASSED! ++( '99' + String.fromCharCode(0x000A) PASSED! ++( String.fromCharCode(0x0009) + 99 ) PASSED! ++( String.fromCharCode(0x0020) + 99 ) PASSED! ++( String.fromCharCode(0x000C) + 99 ) PASSED! ++( String.fromCharCode(0x000B) + 99 ) PASSED! ++( String.fromCharCode(0x000D) + 99 ) PASSED! ++( String.fromCharCode(0x000A) + 99 ) PASSED! ++( String.fromCharCode(0x0009) + 99 + String.fromCharCode(0x0009) PASSED! ++( String.fromCharCode(0x0020) + 99 + String.fromCharCode(0x0020) PASSED! ++( String.fromCharCode(0x000C) + 99 + String.fromCharCode(0x000C) PASSED! ++( String.fromCharCode(0x000D) + 99 + String.fromCharCode(0x000D) PASSED! ++( String.fromCharCode(0x000B) + 99 + String.fromCharCode(0x000B) PASSED! ++( String.fromCharCode(0x000A) + 99 + String.fromCharCode(0x000A) PASSED! ++( 99 + String.fromCharCode(0x0009) PASSED! ++( 99 + String.fromCharCode(0x0020) PASSED! ++( 99 + String.fromCharCode(0x000C) PASSED! ++( 99 + String.fromCharCode(0x000D) PASSED! ++( 99 + String.fromCharCode(0x000B) PASSED! ++( 99 + String.fromCharCode(0x000A) PASSED! ++('Infinity') PASSED! ++('-Infinity') PASSED! ++('+Infinity') PASSED! ++('0') PASSED! ++('-0') PASSED! ++('+0') PASSED! ++('1') PASSED! ++('-1') PASSED! ++('+1') PASSED! ++('2') PASSED! ++('-2') PASSED! ++('+2') PASSED! ++('3') PASSED! ++('-3') PASSED! ++('+3') PASSED! ++('4') PASSED! ++('-4') PASSED! ++('+4') PASSED! ++('5') PASSED! ++('-5') PASSED! ++('+5') PASSED! ++('6') PASSED! ++('-6') PASSED! ++('+6') PASSED! ++('7') PASSED! ++('-7') PASSED! ++('+7') PASSED! ++('8') PASSED! ++('-8') PASSED! ++('+8') PASSED! ++('9') PASSED! ++('-9') PASSED! ++('+9') PASSED! ++('3.14159') PASSED! ++('-3.14159') PASSED! ++('+3.14159') PASSED! ++('3.') PASSED! ++('-3.') PASSED! ++('+3.') PASSED! ++('3.e1') PASSED! ++('-3.e1') PASSED! ++('+3.e1') PASSED! ++('3.e+1') PASSED! ++('-3.e+1') PASSED! ++('+3.e+1') PASSED! ++('3.e-1') PASSED! ++('-3.e-1') PASSED! ++('+3.e-1') PASSED! ++('.00001') PASSED! ++('+.00001') PASSED! ++('-0.0001') PASSED! ++('.01e2') PASSED! ++('+.01e2') PASSED! ++('-.01e2') PASSED! ++('.01e+2') PASSED! ++('+.01e+2') PASSED! ++('-.01e+2') PASSED! ++('.01e-2') PASSED! ++('+.01e-2') PASSED! ++('-.01e-2') PASSED! ++('1234e5') PASSED! ++('+1234e5') PASSED! ++('-1234e5') PASSED! ++('1234e+5') PASSED! ++('+1234e+5') PASSED! ++('-1234e+5') PASSED! ++('1234e-5') PASSED! ++('+1234e-5') PASSED! ++('-1234e-5') PASSED! ++('0x0') PASSED! ++('0x1') PASSED! ++('0x2') PASSED! ++('0x3') PASSED! ++('0x4') PASSED! ++('0x5') PASSED! ++('0x6') PASSED! ++('0x7') PASSED! ++('0x8') PASSED! ++('0x9') PASSED! ++('0xa') PASSED! ++('0xb') PASSED! ++('0xc') PASSED! ++('0xd') PASSED! ++('0xe') PASSED! ++('0xf') PASSED! ++('0xA') PASSED! ++('0xB') PASSED! ++('0xC') PASSED! ++('0xD') PASSED! ++('0xE') PASSED! ++('0xF') PASSED! ++('0X0') PASSED! ++('0X1') PASSED! ++('0X2') PASSED! ++('0X3') PASSED! ++('0X4') PASSED! ++('0X5') PASSED! ++('0X6') PASSED! ++('0X7') PASSED! ++('0X8') PASSED! ++('0X9') PASSED! ++('0Xa') PASSED! ++('0Xb') PASSED! ++('0Xc') PASSED! ++('0Xd') PASSED! ++('0Xe') PASSED! ++('0Xf') PASSED! ++('0XA') PASSED! ++('0XB') PASSED! ++('0XC') PASSED! ++('0XD') PASSED! ++('0XE') PASSED! ++('0XF') PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_6/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..183d93c7f5a504fb21df3c9280c2cc1b9e05ea17 GIT binary patch literal 6973 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/output.txt new file mode 100644 index 000000000..d7ebf163a --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/output.txt @@ -0,0 +1,146 @@ +-('a string') PASSED! +-('34string') PASSED! +-('string63') PASSED! +-('e47') PASSED! +-('1e47') PASSED! +-1e47 PASSED! +-('') PASSED! +-(' ') PASSED! +-(\t) PASSED! +-(\n) PASSED! +-(\r) PASSED! +-(\f) PASSED! +-(String.fromCharCode(0x0009) PASSED! +-(String.fromCharCode(0x0020) PASSED! +-(String.fromCharCode(0x000C) PASSED! +-(String.fromCharCode(0x000B) PASSED! +-(String.fromCharCode(0x000D) PASSED! +-(String.fromCharCode(0x000A) PASSED! +-( ' ' + 999 ) PASSED! +-( '\n' + 999 ) PASSED! +-( '\r' + 999 ) PASSED! +-( '\t' + 999 ) PASSED! +-( '\f' + 999 ) PASSED! +-( 999 + ' ' ) PASSED! +-( 999 + '\n' ) PASSED! +-( 999 + '\r' ) PASSED! +-( 999 + '\t' ) PASSED! +-( 999 + '\f' ) PASSED! +-( '\n' + 999 + '\n' ) PASSED! +-( '\r' + 999 + '\r' ) PASSED! +-( '\t' + 999 + '\t' ) PASSED! +-( '\f' + 999 + '\f' ) PASSED! +-( ' ' + '999' ) PASSED! +-( '\n' + '999' ) PASSED! +-( '\r' + '999' ) PASSED! +-( '\t' + '999' ) PASSED! +-( '\f' + '999' ) PASSED! +-( '999' + ' ' ) PASSED! +-( '999' + '\n' ) PASSED! +-( '999' + '\r' ) PASSED! +-( '999' + '\t' ) PASSED! +-( '999' + '\f' ) PASSED! +-( '\n' + '999' + '\n' ) PASSED! +-( '\r' + '999' + '\r' ) PASSED! +-( '\t' + '999' + '\t' ) PASSED! +-( '\f' + '999' + '\f' ) PASSED! +-( String.fromCharCode(0x0009) + '99' ) PASSED! +-( String.fromCharCode(0x0020) + '99' ) PASSED! +-( String.fromCharCode(0x000C) + '99' ) PASSED! +-( String.fromCharCode(0x000B) + '99' ) PASSED! +-( String.fromCharCode(0x000D) + '99' ) PASSED! +-( String.fromCharCode(0x000A) + '99' ) PASSED! +-( String.fromCharCode(0x0009) + '99' + String.fromCharCode(0x0009) PASSED! +-( String.fromCharCode(0x0020) + '99' + String.fromCharCode(0x0020) PASSED! +-( String.fromCharCode(0x000C) + '99' + String.fromCharCode(0x000C) PASSED! +-( String.fromCharCode(0x000D) + '99' + String.fromCharCode(0x000D) PASSED! +-( String.fromCharCode(0x000B) + '99' + String.fromCharCode(0x000B) PASSED! +-( String.fromCharCode(0x000A) + '99' + String.fromCharCode(0x000A) PASSED! +-( '99' + String.fromCharCode(0x0009) PASSED! +-( '99' + String.fromCharCode(0x0020) PASSED! +-( '99' + String.fromCharCode(0x000C) PASSED! +-( '99' + String.fromCharCode(0x000D) PASSED! +-( '99' + String.fromCharCode(0x000B) PASSED! +-( '99' + String.fromCharCode(0x000A) PASSED! +-( String.fromCharCode(0x0009) + 99 ) PASSED! +-( String.fromCharCode(0x0020) + 99 ) PASSED! +-( String.fromCharCode(0x000C) + 99 ) PASSED! +-( String.fromCharCode(0x000B) + 99 ) PASSED! +-( String.fromCharCode(0x000D) + 99 ) PASSED! +-( String.fromCharCode(0x000A) + 99 ) PASSED! +-( String.fromCharCode(0x0009) + 99 + String.fromCharCode(0x0009) PASSED! +-( String.fromCharCode(0x0020) + 99 + String.fromCharCode(0x0020) PASSED! +-( String.fromCharCode(0x000C) + 99 + String.fromCharCode(0x000C) PASSED! +-( String.fromCharCode(0x000D) + 99 + String.fromCharCode(0x000D) PASSED! +-( String.fromCharCode(0x000B) + 99 + String.fromCharCode(0x000B) PASSED! +-( String.fromCharCode(0x000A) + 99 + String.fromCharCode(0x000A) PASSED! +-( 99 + String.fromCharCode(0x0009) PASSED! +-( 99 + String.fromCharCode(0x0020) PASSED! +-( 99 + String.fromCharCode(0x000C) PASSED! +-( 99 + String.fromCharCode(0x000D) PASSED! +-( 99 + String.fromCharCode(0x000B) PASSED! +-( 99 + String.fromCharCode(0x000A) PASSED! +-('Infinity') PASSED! +-('-Infinity') PASSED! ++-('+Infinity') PASSED! +-('0') PASSED! +-('-0') PASSED! +-('+0') PASSED! +-('1') PASSED! +-('-1') PASSED! +-('+1') PASSED! +-('2') PASSED! +-('-2') PASSED! +-('+2') PASSED! +-('3.14159') PASSED! +-('-3.14159') PASSED! +-('+3.14159') PASSED! +-('3.') PASSED! +-('-3.') PASSED! +-('+3.') PASSED! +-('3.e1') PASSED! +-('-3.e1') PASSED! +-('+3.e1') PASSED! +-(3.e+1) PASSED! +-(-3.e+1) PASSED! +-(+3.e+1) PASSED! +-('3.e-1') PASSED! +-('-3.e-1') PASSED! +-('+3.e-1') PASSED! +-('.00001') PASSED! +-('+.00001') PASSED! +-('-0.0001') PASSED! +-('.01e2') PASSED! +-('+.01e2') PASSED! +-('-.01e2') PASSED! +-.01e+2 PASSED! +-(+.01e+2) PASSED! +-(-.01e+2) PASSED! +-('.01e-2') PASSED! +-('+.01e-2') PASSED! +-('-.01e-2') PASSED! +-('1234e5') PASSED! +-('+1234e5') PASSED! +-('-1234e5') PASSED! +-('1234e+5') PASSED! +-('+1234e+5') PASSED! +-('-1234e+5') PASSED! +-('1234e-5') PASSED! +-('+1234e-5') PASSED! +-('-1234e-5') PASSED! +-('0x0') PASSED! +-('0x1') PASSED! +-('0x2') PASSED! +-('0xd') PASSED! +-('0xe') PASSED! +-('0xf') PASSED! +-('0xA') PASSED! +-('0xB') PASSED! +-('0xC') PASSED! +-0X0 PASSED! +-('0X8') PASSED! +-('0X9') PASSED! +-0Xa PASSED! +-('0Xb') PASSED! +-('0XE') PASSED! +-0XF PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..f53793285dd072b8a6d4f8b6668797927649e6e0 GIT binary patch literal 5939 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 V!cr0ayQB91lI(!O?*T}lJeu(hPfh>; literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_7/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/Test.as new file mode 100644 index 000000000..fb89a48b2 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/Test.as @@ -0,0 +1,170 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "e11_4_8"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + for ( var i = 0; i < 35; i++ ) { + var p = Math.pow(2,i); + + array[item++] = Assert.expectEq( "~"+p, Not(p), ~p ); + + } + for ( i = 0; i < 35; i++ ) { + var p = -Math.pow(2,i); + + array[item++] = Assert.expectEq( "~"+p, Not(p), ~p ); + + } + + return ( array ); +} +function ToInteger( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( n != n ) { + return 0; + } + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) { + return n; + } + return ( sign * Math.floor(Math.abs(n)) ); +} +function ToInt32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = (sign * Math.floor( Math.abs(n) )) % Math.pow(2,32); + n = ( n >= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function Not( n ) { + n = ToInt32(n); + n = ToInt32BitString(n); + + r = "" + + for( var l = 0; l < n.length; l++ ) { + r += ( n.charAt(l) == "0" ) ? "1" : "0"; + } + + n = ToInt32Decimal(r); + + return n; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/output.txt new file mode 100644 index 000000000..a7cab5835 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/output.txt @@ -0,0 +1,70 @@ +~1 PASSED! +~2 PASSED! +~4 PASSED! +~8 PASSED! +~16 PASSED! +~32 PASSED! +~64 PASSED! +~128 PASSED! +~256 PASSED! +~512 PASSED! +~1024 PASSED! +~2048 PASSED! +~4096 PASSED! +~8192 PASSED! +~16384 PASSED! +~32768 PASSED! +~65536 PASSED! +~131072 PASSED! +~262144 PASSED! +~524288 PASSED! +~1048576 PASSED! +~2097152 PASSED! +~4194304 PASSED! +~8388608 PASSED! +~16777216 PASSED! +~33554432 PASSED! +~67108864 PASSED! +~134217728 PASSED! +~268435456 PASSED! +~536870912 PASSED! +~1073741824 PASSED! +~2147483648 PASSED! +~4294967296 PASSED! +~8589934592 PASSED! +~17179869184 PASSED! +~-1 PASSED! +~-2 PASSED! +~-4 PASSED! +~-8 PASSED! +~-16 PASSED! +~-32 PASSED! +~-64 PASSED! +~-128 PASSED! +~-256 PASSED! +~-512 PASSED! +~-1024 PASSED! +~-2048 PASSED! +~-4096 PASSED! +~-8192 PASSED! +~-16384 PASSED! +~-32768 PASSED! +~-65536 PASSED! +~-131072 PASSED! +~-262144 PASSED! +~-524288 PASSED! +~-1048576 PASSED! +~-2097152 PASSED! +~-4194304 PASSED! +~-8388608 PASSED! +~-16777216 PASSED! +~-33554432 PASSED! +~-67108864 PASSED! +~-134217728 PASSED! +~-268435456 PASSED! +~-536870912 PASSED! +~-1073741824 PASSED! +~-2147483648 PASSED! +~-4294967296 PASSED! +~-8589934592 PASSED! +~-17179869184 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..684a49813e1336eed1d5190e1934befca5f1aa63 GIT binary patch literal 3312 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_8/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/Test.as new file mode 100644 index 000000000..ddfba3726 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/Test.as @@ -0,0 +1,53 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_4_9"; +// var VERSION = "ECMA_1"; +// var TITLE = "Logical NOT operator (!)"; + + +// version("130") + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "!(null)", true, !(null) ); + array[item++] = Assert.expectEq( "!(void 0)", true, !(void 0) ); + + array[item++] = Assert.expectEq( "!(false)", true, !(false) ); + array[item++] = Assert.expectEq( "!(true)", false, !(true) ); + array[item++] = Assert.expectEq( "!(0)", true, !(0) ); + array[item++] = Assert.expectEq( "!(-0)", true, !(-0) ); + array[item++] = Assert.expectEq( "!(NaN)", true, !(Number.NaN) ); + array[item++] = Assert.expectEq( "!(Infinity)", false, !(Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "!(-Infinity)", false, !(Number.NEGATIVE_INFINITY) ); + array[item++] = Assert.expectEq( "!(Math.PI)", false, !(Math.PI) ); + array[item++] = Assert.expectEq( "!(1)", false, !(1) ); + array[item++] = Assert.expectEq( "!(-1)", false, !(-1) ); + array[item++] = Assert.expectEq( "!('')", true, !("") ); + array[item++] = Assert.expectEq( "!('\t')", false, !("\t") ); + array[item++] = Assert.expectEq( "!('0')", false, !("0") ); + array[item++] = Assert.expectEq( "!('string')", false, !("string") ); + array[item++] = Assert.expectEq( "!(new String(''))", true, !(new String("")) ); + array[item++] = Assert.expectEq( "!(new String('string'))", false, !(new String("string")) ); + array[item++] = Assert.expectEq( "!(new String())", true, !(new String()) ); + array[item++] = Assert.expectEq( "!(new Boolean(true))", false, !(new Boolean(true)) ); + array[item++] = Assert.expectEq( "!(new Boolean(false))", true, !(new Boolean(false)) ); + array[item++] = Assert.expectEq( "!(new Array())", false, !(new Array()) ); + array[item++] = Assert.expectEq( "!(new Array(1,2,3)", false, !(new Array(1,2,3)) ); + array[item++] = Assert.expectEq( "!(new Number())", true, !(new Number()) ); + array[item++] = Assert.expectEq( "!(new Number(0))", true, !(new Number(0)) ); + array[item++] = Assert.expectEq( "!(new Number(NaN))", true, !(new Number(Number.NaN)) ); + array[item++] = Assert.expectEq( "!(new Number(Infinity))", false, !(new Number(Number.POSITIVE_INFINITY)) ); + + return (array); +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/output.txt new file mode 100644 index 000000000..5ec1fbe1f --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/output.txt @@ -0,0 +1,27 @@ +!(null) PASSED! +!(void 0) PASSED! +!(false) PASSED! +!(true) PASSED! +!(0) PASSED! +!(-0) PASSED! +!(NaN) PASSED! +!(Infinity) PASSED! +!(-Infinity) PASSED! +!(Math.PI) PASSED! +!(1) PASSED! +!(-1) PASSED! +!('') PASSED! +!(' ') PASSED! +!('0') PASSED! +!('string') PASSED! +!(new String('')) PASSED! +!(new String('string')) PASSED! +!(new String()) PASSED! +!(new Boolean(true)) PASSED! +!(new Boolean(false)) PASSED! +!(new Array()) PASSED! +!(new Array(1,2,3) PASSED! +!(new Number()) PASSED! +!(new Number(0)) PASSED! +!(new Number(NaN)) PASSED! +!(new Number(Infinity)) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..e5df2fd8d4917219045f9c8d54ef7a792df278ed GIT binary patch literal 3090 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_4_9/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/Test.as new file mode 100644 index 000000000..ab29ea5d8 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/Test.as @@ -0,0 +1,78 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_5_1"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "Number.NaN * Number.NaN", Number.NaN, Number.NaN * Number.NaN ); + array[item++] = Assert.expectEq( "Number.NaN * 1", Number.NaN, Number.NaN * 1 ); + array[item++] = Assert.expectEq( "1 * Number.NaN", Number.NaN, 1 * Number.NaN ); + + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * 0", Number.NaN, Number.POSITIVE_INFINITY * 0 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * 0", Number.NaN, Number.NEGATIVE_INFINITY * 0 ); + array[item++] = Assert.expectEq( "0 * Number.POSITIVE_INFINITY", Number.NaN, 0 * Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "0 * Number.NEGATIVE_INFINITY", Number.NaN, 0 * Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "-0 * Number.POSITIVE_INFINITY", Number.NaN, -0 * Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-0 * Number.NEGATIVE_INFINITY", Number.NaN, -0 * Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * -0", Number.NaN, Number.POSITIVE_INFINITY * -0 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * -0", Number.NaN, Number.NEGATIVE_INFINITY * -0 ); + + array[item++] = Assert.expectEq( "0 * -0", -0, 0 * -0 ); + array[item++] = Assert.expectEq( "-0 * 0", -0, -0 * 0 ); + array[item++] = Assert.expectEq( "-0 * -0", 0, -0 * -0 ); + array[item++] = Assert.expectEq( "0 * 0", 0, 0 * 0 ); + + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * Number.NEGATIVE_INFINITY", Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY * Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * Number.NEGATIVE_INFINITY", Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY * Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * Number.POSITIVE_INFINITY", Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY * Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * Number.POSITIVE_INFINITY", Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY * Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * 1 ", Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY * 1 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY * -1 ", Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY * -1 ); + array[item++] = Assert.expectEq( "1 * Number.NEGATIVE_INFINITY", Number.NEGATIVE_INFINITY, 1 * Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "-1 * Number.NEGATIVE_INFINITY", Number.POSITIVE_INFINITY, -1 * Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * 1 ", Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY * 1 ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY * -1 ", Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY * -1 ); + array[item++] = Assert.expectEq( "1 * Number.POSITIVE_INFINITY", Number.POSITIVE_INFINITY, 1 * Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-1 * Number.POSITIVE_INFINITY", Number.NEGATIVE_INFINITY, -1 * Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "-1.0 * Number.MAX_VALUE", -Number.MAX_VALUE, -1.0 * Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "1.1 * Number.MAX_VALUE", Number.POSITIVE_INFINITY, 1.1 * Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "-1.1 * Number.MAX_VALUE", Number.NEGATIVE_INFINITY, -1.1 * Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE * Number.MAX_VALUE", Number.POSITIVE_INFINITY, Number.MAX_VALUE * Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "(Number.MAX_VALUE-1) * (Number.MAX_VALUE-1)", Number.POSITIVE_INFINITY, (Number.MAX_VALUE-1) * (Number.MAX_VALUE-1) ); + array[item++] = Assert.expectEq( "-1 * Number.MAX_VALUE * Number.MAX_VALUE", Number.NEGATIVE_INFINITY, -1 * Number.MAX_VALUE * Number.MAX_VALUE ); + + array[item++] = Assert.expectEq( "-1 * Number.MIN_VALUE", -4.9406564584124654e-324, -1 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "0.9 * Number.MIN_VALUE", 4.9406564584124654e-324, 0.9 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "-0.9 * Number.MIN_VALUE", -4.9406564584124654e-324, -0.9 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "0.51 * Number.MIN_VALUE", 4.9406564584124654e-324, 0.51 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "-0.51 * Number.MIN_VALUE", -4.9406564584124654e-324, -0.51 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "0.5 * Number.MIN_VALUE", 0, 0.5 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "-0.5 * Number.MIN_VALUE", -0, -0.5 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "0.1 * Number.MIN_VALUE", 0, 0.1 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "-0.1 * Number.MIN_VALUE", -0, -0.1 * Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE * Number.MIN_VALUE", 0, Number.MIN_VALUE * Number.MIN_VALUE ); + + array[item++] = Assert.expectEq( "1 * 1", 1, 1 * 1 ); + array[item++] = Assert.expectEq( "-1 * 1", -1, -1 * 1 ); + array[item++] = Assert.expectEq( "1 * (-1)", -1, 1 * (-1) ); + array[item++] = Assert.expectEq( "-1 * (-1)", 1, -1 * (-1) ); + + + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/output.txt new file mode 100644 index 000000000..4ab13e3c6 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/output.txt @@ -0,0 +1,47 @@ +Number.NaN * Number.NaN PASSED! +Number.NaN * 1 PASSED! +1 * Number.NaN PASSED! +Number.POSITIVE_INFINITY * 0 PASSED! +Number.NEGATIVE_INFINITY * 0 PASSED! +0 * Number.POSITIVE_INFINITY PASSED! +0 * Number.NEGATIVE_INFINITY PASSED! +-0 * Number.POSITIVE_INFINITY PASSED! +-0 * Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY * -0 PASSED! +Number.NEGATIVE_INFINITY * -0 PASSED! +0 * -0 PASSED! +-0 * 0 PASSED! +-0 * -0 PASSED! +0 * 0 PASSED! +Number.NEGATIVE_INFINITY * Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY * Number.NEGATIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY * Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY * Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY * 1 PASSED! +Number.NEGATIVE_INFINITY * -1 PASSED! +1 * Number.NEGATIVE_INFINITY PASSED! +-1 * Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY * 1 PASSED! +Number.POSITIVE_INFINITY * -1 PASSED! +1 * Number.POSITIVE_INFINITY PASSED! +-1 * Number.POSITIVE_INFINITY PASSED! +-1.0 * Number.MAX_VALUE PASSED! +1.1 * Number.MAX_VALUE PASSED! +-1.1 * Number.MAX_VALUE PASSED! +Number.MAX_VALUE * Number.MAX_VALUE PASSED! +(Number.MAX_VALUE-1) * (Number.MAX_VALUE-1) PASSED! +-1 * Number.MAX_VALUE * Number.MAX_VALUE PASSED! +-1 * Number.MIN_VALUE PASSED! +0.9 * Number.MIN_VALUE PASSED! +-0.9 * Number.MIN_VALUE PASSED! +0.51 * Number.MIN_VALUE PASSED! +-0.51 * Number.MIN_VALUE PASSED! +0.5 * Number.MIN_VALUE PASSED! +-0.5 * Number.MIN_VALUE PASSED! +0.1 * Number.MIN_VALUE PASSED! +-0.1 * Number.MIN_VALUE PASSED! +Number.MIN_VALUE * Number.MIN_VALUE PASSED! +1 * 1 PASSED! +-1 * 1 PASSED! +1 * (-1) PASSED! +-1 * (-1) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..994803c8d0f49d17150c3ea8823dbbaf20c2e5a6 GIT binary patch literal 3553 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/output.txt new file mode 100644 index 000000000..8aee85128 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/output.txt @@ -0,0 +1,58 @@ +Number.NaN / Number.NaN PASSED! +Number.NaN / 1 PASSED! +1 / Number.NaN PASSED! +Number.POSITIVE_INFINITY / Number.NaN PASSED! +Number.NEGATIVE_INFINITY / Number.NaN PASSED! +Number.NEGATIVE_INFINITY / Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY / Number.NEGATIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY / Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY / Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY / 0 PASSED! +Number.NEGATIVE_INFINITY / 0 PASSED! +Number.POSITIVE_INFINITY / -0 PASSED! +Number.NEGATIVE_INFINITY / -0 PASSED! +Number.NEGATIVE_INFINITY / 1 PASSED! +Number.NEGATIVE_INFINITY / -1 PASSED! +Number.POSITIVE_INFINITY / 1 PASSED! +Number.POSITIVE_INFINITY / -1 PASSED! +Number.NEGATIVE_INFINITY / Number.MAX_VALUE PASSED! +Number.NEGATIVE_INFINITY / -Number.MAX_VALUE PASSED! +Number.POSITIVE_INFINITY / Number.MAX_VALUE PASSED! +Number.POSITIVE_INFINITY / -Number.MAX_VALUE PASSED! +1 / Number.NEGATIVE_INFINITY PASSED! +1 / Number.POSITIVE_INFINITY PASSED! +-1 / Number.POSITIVE_INFINITY PASSED! +-1 / Number.NEGATIVE_INFINITY PASSED! +Number.MAX_VALUE / Number.NEGATIVE_INFINITY PASSED! +Number.MAX_VALUE / Number.POSITIVE_INFINITY PASSED! +-Number.MAX_VALUE / Number.POSITIVE_INFINITY PASSED! +-Number.MAX_VALUE / Number.NEGATIVE_INFINITY PASSED! +0 / -0 PASSED! +-0 / 0 PASSED! +-0 / -0 PASSED! +0 / 0 PASSED! +0 / 1 PASSED! +0 / -1 PASSED! +-0 / 1 PASSED! +-0 / -1 PASSED! +1 / 0 PASSED! +1 / -0 PASSED! +-1 / 0 PASSED! +-1 / -0 PASSED! +0 / Number.POSITIVE_INFINITY PASSED! +0 / Number.NEGATIVE_INFINITY PASSED! +-0 / Number.POSITIVE_INFINITY PASSED! +-0 / Number.NEGATIVE_INFINITY PASSED! +1 / 1 PASSED! +1 / -1 PASSED! +-1 / 1 PASSED! +-1 / -1 PASSED! +Number.MIN_VALUE / Number.MAX_VALUE PASSED! +Number.MAX_VALUE / Number.MIN_VALUE PASSED! +10.3 / 5e-324 PASSED! +Number.MIN_VALUE / 1.1 PASSED! +Number.MIN_VALUE / 1.9 PASSED! +Number.MIN_VALUE / 2.0 PASSED! +Number.MIN_VALUE / 3 PASSED! +Number.MIN_VALUE / 5 PASSED! +Number.MIN_VALUE / 9 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..7077e1b9cb6183f9ce96c16b349317ef4c607e4b GIT binary patch literal 3767 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_2/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/Test.as new file mode 100644 index 000000000..d7f7473c1 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/Test.as @@ -0,0 +1,126 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_5_3"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + var BUGNUMBER="111202"; + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // if either operand is NaN, the result is NaN. + + array[item++] = Assert.expectEq( "Number.NaN % Number.NaN", Number.NaN, Number.NaN % Number.NaN ); + array[item++] = Assert.expectEq( "Number.NaN % 1", Number.NaN, Number.NaN % 1 ); + array[item++] = Assert.expectEq( "1 % Number.NaN", Number.NaN, 1 % Number.NaN ); + + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % Number.NaN", Number.NaN, Number.POSITIVE_INFINITY % Number.NaN ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % Number.NaN", Number.NaN, Number.NEGATIVE_INFINITY % Number.NaN ); + + // If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN. + // dividend is an infinity + + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % Number.NEGATIVE_INFINITY", Number.NaN, Number.NEGATIVE_INFINITY % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % Number.NEGATIVE_INFINITY", Number.NaN, Number.POSITIVE_INFINITY % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % Number.POSITIVE_INFINITY", Number.NaN, Number.NEGATIVE_INFINITY % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % Number.POSITIVE_INFINITY", Number.NaN, Number.POSITIVE_INFINITY % Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % 0", Number.NaN, Number.POSITIVE_INFINITY % 0 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % 0", Number.NaN, Number.NEGATIVE_INFINITY % 0 ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % -0", Number.NaN, Number.POSITIVE_INFINITY % -0 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % -0", Number.NaN, Number.NEGATIVE_INFINITY % -0 ); + + array[item++] = Assert.expectEq( "65 % 0", Number.NaN, 65 % 0 ); + array[item++] = Assert.expectEq( "-866.65 % 0", Number.NaN, -866.65 % 0 ); + array[item++] = Assert.expectEq( "54354 % -0", Number.NaN, 54354 % -0 ); + array[item++] = Assert.expectEq( "876.4565 % -0", Number.NaN, 876.4565 % -0 ); + + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % 1 ", Number.NaN, Number.NEGATIVE_INFINITY % 1 ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % -1 ", Number.NaN, Number.NEGATIVE_INFINITY % -1 ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % 1 ", Number.NaN, Number.POSITIVE_INFINITY % 1 ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % -1 ", Number.NaN, Number.POSITIVE_INFINITY % -1 ); + + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % Number.MAX_VALUE ", Number.NaN, Number.NEGATIVE_INFINITY % Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY % -Number.MAX_VALUE ", Number.NaN, Number.NEGATIVE_INFINITY % -Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % Number.MAX_VALUE ", Number.NaN, Number.POSITIVE_INFINITY % Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY % -Number.MAX_VALUE ", Number.NaN, Number.POSITIVE_INFINITY % -Number.MAX_VALUE ); + + // divisor is 0 + array[item++] = Assert.expectEq( "0 % -0", Number.NaN, 0 % -0 ); + array[item++] = Assert.expectEq( "-0 % 0", Number.NaN, -0 % 0 ); + array[item++] = Assert.expectEq( "-0 % -0", Number.NaN, -0 % -0 ); + array[item++] = Assert.expectEq( "0 % 0", Number.NaN, 0 % 0 ); + + array[item++] = Assert.expectEq( "1 % 0", Number.NaN, 1%0 ); + array[item++] = Assert.expectEq( "1 % -0", Number.NaN, 1%-0 ); + array[item++] = Assert.expectEq( "-1 % 0", Number.NaN, -1%0 ); + array[item++] = Assert.expectEq( "-1 % -0", Number.NaN, -1%-0 ); + + array[item++] = Assert.expectEq( "Number.MAX_VALUE % 0", Number.NaN, Number.MAX_VALUE%0 ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE % -0", Number.NaN, Number.MAX_VALUE%-0 ); + array[item++] = Assert.expectEq( "-Number.MAX_VALUE % 0", Number.NaN, -Number.MAX_VALUE%0 ); + array[item++] = Assert.expectEq( "-Number.MAX_VALUE % -0", Number.NaN, -Number.MAX_VALUE%-0 ); + + // If the dividend is finite and the divisor is an infinity, the result equals the dividend. + + array[item++] = Assert.expectEq( "1 % Number.NEGATIVE_INFINITY", 1, 1 % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "1 % Number.POSITIVE_INFINITY", 1, 1 % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-1 % Number.POSITIVE_INFINITY", -1, -1 % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-1 % Number.NEGATIVE_INFINITY", -1, -1 % Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "Number.MAX_VALUE % Number.NEGATIVE_INFINITY", Number.MAX_VALUE, Number.MAX_VALUE % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE % Number.POSITIVE_INFINITY", Number.MAX_VALUE, Number.MAX_VALUE % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Number.MAX_VALUE % Number.POSITIVE_INFINITY", -Number.MAX_VALUE, -Number.MAX_VALUE % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Number.MAX_VALUE % Number.NEGATIVE_INFINITY", -Number.MAX_VALUE, -Number.MAX_VALUE % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE % Number.NEGATIVE_INFINITY", Number.MIN_VALUE, Number.MIN_VALUE % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE % Number.POSITIVE_INFINITY", Number.MIN_VALUE, Number.MIN_VALUE % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Number.MIN_VALUE % Number.POSITIVE_INFINITY", -Number.MIN_VALUE, -Number.MIN_VALUE % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Number.MIN_VALUE % Number.NEGATIVE_INFINITY", -Number.MIN_VALUE, -Number.MIN_VALUE % Number.NEGATIVE_INFINITY ); + + + array[item++] = Assert.expectEq( "0 % Number.POSITIVE_INFINITY", 0, 0 % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "0 % Number.NEGATIVE_INFINITY", 0, 0 % Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "-0 % Number.POSITIVE_INFINITY", -0, -0 % Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "-0 % Number.NEGATIVE_INFINITY", -0, -0 % Number.NEGATIVE_INFINITY ); + + // If the dividend is a zero and the divisor is finite, the result is the same as the dividend. + + array[item++] = Assert.expectEq( "0 % 1", 0, 0 % 1 ); + array[item++] = Assert.expectEq( "0 % -1", 0, 0 % -1 ); + array[item++] = Assert.expectEq( "-0 % 1", -0, -0 % 1 ); + array[item++] = Assert.expectEq( "-0 % -1", -0, -0 % -1 ); + + // the sign of the result equals the sign of the dividend + + array[item++] = Assert.expectEq( "10 % 3", 1, 10 % 3 ); + array[item++] = Assert.expectEq( "-10 % 3", -1, -10 % 3 ); + array[item++] = Assert.expectEq( "10 % -3", 1, 10 % -3 ); + array[item++] = Assert.expectEq( "-10 % -3", -1, -10 % -3 ); + +// In the remaining cases, where neither an infinity, nor a zero, nor NaN is involved, the floating-point remainder r +// from a dividend n and a divisor d is defined by the mathematical relation r = n - (d * q) where q is an integer that +// is negative only if n/d is negative and positive only if n/d is positive, and whose magnitude is as large as +// possible without exceeding the magnitude of the true mathematical quotient of n and d. + + array[item++] = Assert.expectEq( "66.6 % 25.4", 15.799999999999997, 66.6 % 25.4 ); + array[item++] = Assert.expectEq( "66.6 % -25.4", 15.799999999999997, 66.6 % -25.4); + array[item++] = Assert.expectEq( "-66.6 % 25.4", -15.799999999999997, -66.6 % 25.4 ); + array[item++] = Assert.expectEq( "-66.6 % -25.4", -15.799999999999997, -66.6 % -25.4 ); + + // Regression for https://bugzilla.mozilla.org/show_bug.cgi?id=491084 + array[item++] = Assert.expectEq( "null % null", NaN, null % null); + array[item++] = Assert.expectEq( "'a string' % null", NaN, 'a string' % null); + array[item++] = Assert.expectEq( "null % 'a string'", NaN, null % 'a string'); + array[item++] = Assert.expectEq( "Math.PI % null", NaN, Math.PI % null); + array[item++] = Assert.expectEq( "null % Math.PI", 0, null % Math.PI); + + return ( array ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/output.txt new file mode 100644 index 000000000..b411e5134 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/output.txt @@ -0,0 +1,70 @@ +Number.NaN % Number.NaN PASSED! +Number.NaN % 1 PASSED! +1 % Number.NaN PASSED! +Number.POSITIVE_INFINITY % Number.NaN PASSED! +Number.NEGATIVE_INFINITY % Number.NaN PASSED! +Number.NEGATIVE_INFINITY % Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY % Number.NEGATIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY % Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY % Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY % 0 PASSED! +Number.NEGATIVE_INFINITY % 0 PASSED! +Number.POSITIVE_INFINITY % -0 PASSED! +Number.NEGATIVE_INFINITY % -0 PASSED! +65 % 0 PASSED! +-866.65 % 0 PASSED! +54354 % -0 PASSED! +876.4565 % -0 PASSED! +Number.NEGATIVE_INFINITY % 1 PASSED! +Number.NEGATIVE_INFINITY % -1 PASSED! +Number.POSITIVE_INFINITY % 1 PASSED! +Number.POSITIVE_INFINITY % -1 PASSED! +Number.NEGATIVE_INFINITY % Number.MAX_VALUE PASSED! +Number.NEGATIVE_INFINITY % -Number.MAX_VALUE PASSED! +Number.POSITIVE_INFINITY % Number.MAX_VALUE PASSED! +Number.POSITIVE_INFINITY % -Number.MAX_VALUE PASSED! +0 % -0 PASSED! +-0 % 0 PASSED! +-0 % -0 PASSED! +0 % 0 PASSED! +1 % 0 PASSED! +1 % -0 PASSED! +-1 % 0 PASSED! +-1 % -0 PASSED! +Number.MAX_VALUE % 0 PASSED! +Number.MAX_VALUE % -0 PASSED! +-Number.MAX_VALUE % 0 PASSED! +-Number.MAX_VALUE % -0 PASSED! +1 % Number.NEGATIVE_INFINITY PASSED! +1 % Number.POSITIVE_INFINITY PASSED! +-1 % Number.POSITIVE_INFINITY PASSED! +-1 % Number.NEGATIVE_INFINITY PASSED! +Number.MAX_VALUE % Number.NEGATIVE_INFINITY PASSED! +Number.MAX_VALUE % Number.POSITIVE_INFINITY PASSED! +-Number.MAX_VALUE % Number.POSITIVE_INFINITY PASSED! +-Number.MAX_VALUE % Number.NEGATIVE_INFINITY PASSED! +Number.MIN_VALUE % Number.NEGATIVE_INFINITY PASSED! +Number.MIN_VALUE % Number.POSITIVE_INFINITY PASSED! +-Number.MIN_VALUE % Number.POSITIVE_INFINITY PASSED! +-Number.MIN_VALUE % Number.NEGATIVE_INFINITY PASSED! +0 % Number.POSITIVE_INFINITY PASSED! +0 % Number.NEGATIVE_INFINITY PASSED! +-0 % Number.POSITIVE_INFINITY PASSED! +-0 % Number.NEGATIVE_INFINITY PASSED! +0 % 1 PASSED! +0 % -1 PASSED! +-0 % 1 PASSED! +-0 % -1 PASSED! +10 % 3 PASSED! +-10 % 3 PASSED! +10 % -3 PASSED! +-10 % -3 PASSED! +66.6 % 25.4 PASSED! +66.6 % -25.4 PASSED! +-66.6 % 25.4 PASSED! +-66.6 % -25.4 PASSED! +null % null PASSED! +'a string' % null PASSED! +null % 'a string' PASSED! +Math.PI % null PASSED! +null % Math.PI PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..8689e5422bd4f19f7a61cc8315939238dbbe7ddf GIT binary patch literal 4047 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 B@WlWC literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_5_3/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/Test.as new file mode 100644 index 000000000..c48a17d66 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/Test.as @@ -0,0 +1,119 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_6_1_1"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // tests for boolean primitive, boolean object, Object object, a "MyObject" whose value is + // a boolean primitive and a boolean object, + var EXP_1 = true; var EXP_2 = false; + array[item++] = Assert.expectEq( + "var EXP_1 = true; var EXP_2 = false; EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + var EXP_1 = new Object(true); var EXP_2 = new Object(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(true); var EXP_2 = new Object(false); EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 + EXP_2", + 1, + EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(true); var EXP_2 = new MyValuelessObject(false); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(true); var EXP_2 = new MyValuelessObject(false); EXP_1 + EXP_2", + // 1, + // EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(new Boolean(true)); var EXP_2 = new MyValuelessObject(new Boolean(false)); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(new Boolean(true)); var EXP_2 = new MyValuelessObject(new Boolean(false)); EXP_1 + EXP_2", + // "truefalse", + // EXP_1 + EXP_2 ); + + // tests for number primitive, number object, Object object, a "MyObject" whose value is + // a number primitive and a number object + var EXP_1 = 100; var EXP_2 = -1; + array[item++] = Assert.expectEq( + "var EXP_1 = 100; var EXP_2 = -1; EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + var EXP_1 = new Number(100); var EXP_2 = new Number(-1); + array[item++] = Assert.expectEq( + "var EXP_1 = new Number(100); var EXP_2 = new Number(-1); EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + var EXP_1 = new Object(100); var EXP_2 = new Object(-1); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(100); var EXP_2 = new Object(-1); EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(-1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(-1)); EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(-1); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(-1); EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(new Number(100)); var EXP_2 = new MyObject(new Number(-1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new Number(100)); var EXP_2 = new MyObject(new Number(-1)); EXP_1 + EXP_2", + 99, + EXP_1 + EXP_2 ); + + //var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject(-1); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject(-1); EXP_1 + EXP_2", + // 99, + // EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(new Number(100)); var EXP_2 = new MyValuelessObject(new Number(-1)); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(new Number(100)); var EXP_2 = new MyValuelessObject(new Number(-1)); EXP_1 + EXP_2", + // "100-1", + // EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject( new MyValuelessObject( new Boolean(true) ) ); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject( new MyValuelessObject( new Boolean(true) ) ); EXP_1 + EXP_1", + // "truetrue", + // EXP_1 + EXP_1 ); + // + return ( array ); +} + +function MyObject( value ) { + this.toString = function(){return this.value + ''}; + this.valueOf = function(){return this.value}; + this.value = value; +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/output.txt new file mode 100644 index 000000000..bf95f6225 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/output.txt @@ -0,0 +1,12 @@ +var EXP_1 = true; var EXP_2 = false; EXP_1 + EXP_2 PASSED! +var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(true); var EXP_2 = new Object(false); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 + EXP_2 PASSED! +var EXP_1 = 100; var EXP_2 = -1; EXP_1 + EXP_2 PASSED! +var EXP_1 = new Number(100); var EXP_2 = new Number(-1); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(100); var EXP_2 = new Object(-1); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(-1)); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(-1); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(new Number(100)); var EXP_2 = new MyObject(new Number(-1)); EXP_1 + EXP_2 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..895c0ef40c9166066db5f541ad01419de6c6d0a1 GIT binary patch literal 2980 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 ac;hiQwCM+!cCnWi>mPHoF!&!TT*{8kLDcyG literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_1/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/Test.as new file mode 100644 index 000000000..5bca5e896 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/Test.as @@ -0,0 +1,141 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_6_1_2"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // tests for boolean primitive, boolean object, Object object, a "MyObject" whose value is + // a boolean primitive and a boolean object + var EXP_1 = 'string'; var EXP_2 = false; + array[item++] = Assert.expectEq( + "var EXP_1 = 'string'; var EXP_2 = false; EXP_1 + EXP_2", + "stringfalse", + EXP_1 + EXP_2 ); + var EXP_1 = true; var EXP_2 = 'string'; + array[item++] = Assert.expectEq( + "var EXP_1 = true; var EXP_2 = 'string'; EXP_1 + EXP_2", + "truestring", + EXP_1 + EXP_2 ); + var EXP_1 = new Boolean(true); var EXP_2 = new String('string'); + array[item++] = Assert.expectEq( + "var EXP_1 = new Boolean(true); var EXP_2 = new String('string'); EXP_1 + EXP_2", + "truestring", + EXP_1 + EXP_2 ); + var EXP_1 = new Object(true); var EXP_2 = new Object('string'); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(true); var EXP_2 = new Object('string'); EXP_1 + EXP_2", + "truestring", + EXP_1 + EXP_2 ); + var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Boolean(false)); EXP_1 + EXP_2", + "stringfalse", + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(true); var EXP_2 = new MyObject('string'); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(true); var EXP_2 = new MyObject('string'); EXP_1 + EXP_2", + "truestring", + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 + EXP_2", + "stringfalse", + EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject('string'); var EXP_2 = new MyValuelessObject(false); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject('string'); var EXP_2 = new MyValuelessObject(false); EXP_1 + EXP_2", + // "stringfalse", + // EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(new String('string')); var EXP_2 = new MyValuelessObject(new Boolean(false)); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(new String('string')); var EXP_2 = new MyValuelessObject(new Boolean(false)); EXP_1 + EXP_2", + // "stringfalse", + // EXP_1 + EXP_2 ); + + // tests for number primitive, number object, Object object, a "MyObject" whose value is + // a number primitive and a number object + var EXP_1 = 100; var EXP_2 = 'string'; + array[item++] = Assert.expectEq( + "var EXP_1 = 100; var EXP_2 = 'string'; EXP_1 + EXP_2", + "100string", + EXP_1 + EXP_2 ); + var EXP_1 = new String('string'); var EXP_2 = new Number(-1); + array[item++] = Assert.expectEq( + "var EXP_1 = new String('string'); var EXP_2 = new Number(-1); EXP_1 + EXP_2", + "string-1", + EXP_1 + EXP_2 ); + var EXP_1 = new Object(100); var EXP_2 = new Object('string'); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(100); var EXP_2 = new Object('string'); EXP_1 + EXP_2", + "100string", + EXP_1 + EXP_2 ); + var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Number(-1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Number(-1)); EXP_1 + EXP_2", + "string-1", + EXP_1 + EXP_2 ); + + var EXP_1 = new MyObject(100); var EXP_2 = new MyObject('string'); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(100); var EXP_2 = new MyObject('string'); EXP_1 + EXP_2", + "100string", + EXP_1 + EXP_2 ); + var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Number(-1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Number(-1)); EXP_1 + EXP_2", + "string-1", + EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject('string'); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject('string'); EXP_1 + EXP_2", + // "100string", + // EXP_1 + EXP_2 ); + //var EXP_1 = new MyValuelessObject(new String('string')); var EXP_2 = new MyValuelessObject(new Number(-1)); + //array[item++] = Assert.expectEq( + // "var EXP_1 = new MyValuelessObject(new String('string')); var EXP_2 = new MyValuelessObject(new Number(-1)); EXP_1 + EXP_2", + // "string-1", + // EXP_1 + EXP_2 ); + return ( array ); +} + +// cn: __proto__ is not ecma3 compliant +/* +function MyProtoValuelessObject() { +//this.valueOf = new Function ( "" ); + this.valueOf = function (){""}; + this.__proto__ = null; +} +function MyProtolessObject( value ) { +//this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; + this.__proto__ = null; + this.value = value; +} +function MyValuelessObject(value) { + this.__proto__ = new MyPrototypeObject(value); +} +*/ +function MyPrototypeObject(value) { +// this.valueOf = new Function( "return this.value;" ); + // this.toString = new Function( "return (this.value + '');" ); + this.valueOf = function(){return this.value}; + this.toString = function(){return this.value + ''}; + this.value = value; +} +function MyObject( value ) { +//this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; + this.value = value; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/output.txt new file mode 100644 index 000000000..402d87f9e --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/output.txt @@ -0,0 +1,13 @@ +var EXP_1 = 'string'; var EXP_2 = false; EXP_1 + EXP_2 PASSED! +var EXP_1 = true; var EXP_2 = 'string'; EXP_1 + EXP_2 PASSED! +var EXP_1 = new Boolean(true); var EXP_2 = new String('string'); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(true); var EXP_2 = new Object('string'); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Boolean(false)); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(true); var EXP_2 = new MyObject('string'); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 + EXP_2 PASSED! +var EXP_1 = 100; var EXP_2 = 'string'; EXP_1 + EXP_2 PASSED! +var EXP_1 = new String('string'); var EXP_2 = new Number(-1); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(100); var EXP_2 = new Object('string'); EXP_1 + EXP_2 PASSED! +var EXP_1 = new Object(new String('string')); var EXP_2 = new Object(new Number(-1)); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(100); var EXP_2 = new MyObject('string'); EXP_1 + EXP_2 PASSED! +var EXP_1 = new MyObject(new String('string')); var EXP_2 = new MyObject(new Number(-1)); EXP_1 + EXP_2 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..3801bce1b63465b243abc7bd65a69654b5e843c2 GIT binary patch literal 3061 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 Dl& + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/output.txt new file mode 100644 index 000000000..41652cf42 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/output.txt @@ -0,0 +1,9 @@ +var DATE1 = new Date(); DATE1 + DATE1 PASSED! +var DATE1 = new Date(); DATE1 + 0 PASSED! +var DATE1 = new Date(); DATE1 + new Number(0) PASSED! +var DATE1 = new Date(); DATE1 + true PASSED! +var DATE1 = new Date(); DATE1 + new Boolean(true) PASSED! +var DATE1 = new Date(); DATE1 + new Boolean(true) PASSED! +MYOB1 = new MyObject(DATE1); MYOB1 + new Number(1) PASSED! +MYOB1 = new MyObject(DATE1); MYOB1 + 1 PASSED! +MYOB1 = new MyObject(DATE1); MYOB1 + true PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..ad540b94dc97b8b9f9ace8d7ff6a232fbd6fdba2 GIT binary patch literal 2914 zcmV-o3!U^sS5qcc6952s+KpJvQya+@@1C!o))x|pZ(|R(3u5x*Ynwi(X_j@1R{rYK&BP9F_p}?OJ>ceO;)Q=GQzU$u@p;^ZGc zF^V~jxr-f5SbOE%i$m=|pC}lbwKp3(Co&tmXdC)mqN3&YbR}izM@r({+#$OR#?7DS zIoC|602Y&)W9{VSShVw)U8R~eiq@WPw&HA-3-+OALcnshls^x3PGn{|Q`hYBM~zxE zW@2ci-Kw^$&*`Oa9&bA8Gsu~NX6tj)x0L0op-ji8Z@TF+a5nbdPBanN+&Q!u{0~2i z7Pxos-aYs5u=^6+Lh!{uZbA(p^wZbtfA}p(fA?(ZmW}=v_Jj~(nu4kA>r*I*CSkxm z_{(4a_`kQmnma<|Ub$@OT1ncp&0=X+PE|`e7E?GV7xR3vWDCrZ-`TLqe9@{H+Dp1p zJ}Bx7MzIpemG>vLd^xL6+CY;MmZh7vw3hu=&)MA zitLKX@0y{Lrdc+<6_~lbp<7kMmhL}VyO(&>@m1NGg0gFrvzn3it|t~AChjL6Ep2Xf z|JtdIoEn*mfaL*f*>7fM{E3bGk5`hbTgi=$wT+&Hxm#sN!U-^=I4|WI-Fmj3bO@bn zb{Ca_jbtjhkz8GH8NC~NK{xeM?me1kBe8nlrF3mTLA|GzA8#x<$`BJSMo&ITJaVHa z4>aSV()%R2v6On|sKZZmvsiffp7pM&WgXeCwNH-Pt(gSO3mJRNv+U%mS#-&IE3o(A zJcg&DnU>!42HTp`EZy?$>NYFA1vUt+ynLb=Rp>L8t@+5v*<1&ue@{x(b-S& zfEf%on}b_3P(884=FQl2JpNfMTP+%Pu|yo+T0yqU?h)|j$|cJ-t2sEyw9<+pCQMU% zDJ;TnUq8@HWihdpoKo&8CH+ug;8^rd6T9KQhd;)OPkfBQu+{2*RyW7uQOT7eA2Wi? zb%8ymeu?|$=^tYT(dm_EYxi30)@qJ9bTD(37qXg)23rTkC8wuGevyx<=r5wNth(Nd zz%ZZNj`RceqtlUOuSIB0nhnj_^e?(ys#zyXC0jQ&=xGPdI_bHfUns*bV6mi|(k7IR ztxIk+&#Jbnw238W!eYTFYqsPLJgh7fomH(^U@c5o(d<25%UYh*vWr`jlA)J&?LEn= zW}&9A?rr-)^0)euQ~5qt`K|67f`qHhlhUlpHbhc(%l3?-D6EMnD@ALc&0LvKl1+z> zVn*pu6}PK3$1&ycYI1u$xv-U7RGgCzHkPg{ZfBm)&(7D_7>5CeyUS{~qxdX^%kr1bSDXK9QEBL5XH1S|Kz?sF%?1 z2pu5QB6OJ0ETIR4UL*86p`(OG3B5t+1fhq7`s4`v&|u#b9BN+90HY6FJm#7&jz^pz zaE>MCpzY5l4>N-EIJ*S+YhE13jBzXKhaViriS0>9gz`v6GNmF4OCF2@UW__?7zO

3WC^ zjfCXOqak`_EaXw5A@8t2B}u?&oXz(JL_sQBg$alO-*E8N*NtTX<6a!Y!#&qFM&Pc>Im_SzYEpjU+gk_;-Bz*77ZM z{Br~yze#@{LCc@xiF-E-{hpMl)0^@8mXIz-6xI4Nos~4&k^lTmdGU9;*l%? z-hIZ201Ix1CId~Dcf-9h|BT-%OiWv zSe~p0SdUt)^xcu=yG@5)pn7HR8P%Kheu(M=s!#Ss({qjGIeeTG(qA-|zW_mO8T+z6 zFkVqtvjSv|&$9M|rC;`+1@UM7z*}RyNRtu(NrQ3BZjP}bEivqE!H9l+?2JEEts z(F9}a;cIc&9~onhSE|KpO9)2LgD`zigZ2@l0|X4Y}8z zG%w|E?DO*?JcW4yp5i=)r<6{mQV0YN{CPO2&W>7qC#3f7g?2jC{=H6sy`snq|HQR; zqtO*csPS6e4$DyY&yL>)q4d?~$8YO(rm3H6-ZV9DRJL~Y#=sI&H(vkv!+7TyLQ$Z8 z_2YOaoR=v0`})W6P{__>i8sD7r#W%VmDY1-9$W(wh(mL$E>0Fd06>03k#`x5IW5~ zIeGPS@E$^d?1V!Md0IbFzddQ3Fh$f+q{DqJ#fy{r>l4*DX}osy)WOw#Hb`%uu5Dx3 z-T*Wb(OZkBS58OjEGvXM&Y{sJ6g-ENCKM7yK@3A#)PHKOvzm6+8FZaICx||vZ?l}; zKwWLv(T(mg4Ctd^5d%RTC4t!JlK?bUjB`qX}{Z>L{XwEmp|^{O_oGpI(i z!JSL$h<0gbNFCFLb}p;q+U1=qs;XVtQPfFI0cZUp;e}EyuDr@gb+w#IW9w}_f*KL= zB(=l6%CXw|E*yjc{6;lLPBWRG)-*mCc6P%G`yAW`Jj?L9T4fG$Vpfcxjt)2%Ab1@= z5<4~ZSFFdv8V*2z7lO6;X#{0*g?vOfN$DKmgKc=B4ZqZe@3!GXZTMarez^@Vw&7RW z@Ne62r44`4h7a>RFLVQ5$kzj`#3HDkGPqYiv*va6!UkWvu)+J=+|XW-HL@=DZQ%TC MWFCb71J*wLl#ATFe*gdg literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.toml new file mode 100644 index 000000000..29f3cef79 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_1_3/test.toml @@ -0,0 +1,2 @@ +num_ticks = 1 +known_failure = true diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/Test.as new file mode 100644 index 000000000..9f8d26a09 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/Test.as @@ -0,0 +1,150 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_6_2_1"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // tests for boolean primitive, boolean object, Object object, a "MyObject" whose value is + // a boolean primitive and a boolean object, and "MyValuelessObject", where the value is + // set in the object's prototype, not the object itself. + var EXP_1 = true; var EXP_2 = false; + array[item++] = Assert.expectEq( + "var EXP_1 = true; var EXP_2 = false; EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new Object(true); var EXP_2 = new Object(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(true); var EXP_2 = new Object(false); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new MyOtherObject(new Boolean(true)); var EXP_2 = new MyOtherObject(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyOtherObject(new Boolean(true)); var EXP_2 = new MyOtherObject(new Boolean(false)); EXP_1 - EXP_2", + 1, + EXP_1 - EXP_2 ); + var EXP_1 = new MyValuelessObject(true); + var EXP_2 = new MyValuelessObject(false); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyValuelessObject(true); var EXP_2 = new MyValuelessObject(false); EXP_1 - EXP_2", + NaN, + EXP_1 - EXP_2 ); + var EXP_1 = new MyValuelessObject(new Boolean(true)); + var EXP_2 = new MyValuelessObject(new Boolean(false)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyValuelessObject(new Boolean(true)); var EXP_2 = new MyValuelessObject(new Boolean(false)); EXP_1 - EXP_2", + 0, // true - true = 0 not NaN + EXP_1 - EXP_2 ); + + // tests for number primitive, number object, Object object, a "MyObject" whose value is + // a number primitive and a number object, and "MyValuelessObject", where the value is + // set in the object's prototype, not the object itself. + var EXP_1 = 100; var EXP_2 = 1; + array[item++] = Assert.expectEq( + "var EXP_1 = 100; var EXP_2 = 1; EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new Number(100); + var EXP_2 = new Number(1); + array[item++] = Assert.expectEq( + "var EXP_1 = new Number(100); var EXP_2 = new Number(1); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new Object(100); + var EXP_2 = new Object(1); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(100); var EXP_2 = new Object(1); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(1)); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(1); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(1); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new MyObject(new Number(100)); + var EXP_2 = new MyObject(new Number(1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyObject(new Number(100)); var EXP_2 = new MyObject(new Number(1)); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new MyOtherObject(new Number(100)); var EXP_2 = new MyOtherObject(new Number(1)); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyOtherObject(new Number(100)); var EXP_2 = new MyOtherObject(new Number(1)); EXP_1 - EXP_2", + 99, + EXP_1 - EXP_2 ); + var EXP_1 = new MyValuelessObject(100); + var EXP_2 = new MyValuelessObject(1); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject(1); EXP_1 - EXP_2", + 0, + EXP_1 - EXP_2 ); + // same thing with string! + var EXP_1 = new MyOtherObject(new String('0xff')); var EXP_2 = new MyOtherObject(new String('1')); + array[item++] = Assert.expectEq( + "var EXP_1 = new MyOtherObject(new String('0xff')); var EXP_2 = new MyOtherObject(new String('1'); EXP_1 - EXP_2", + 254, + EXP_1 - EXP_2 ); + + return ( array ); +} +function MyProtoValuelessObject() { + this.valueOf = function (){ "" }; + this.constructor.prototype = null; +} +function MyProtolessObject( value ) { + this.valueOf = function(){return this.value}; + this.constructor.prototype= null; + this.value = value; +} +function MyValuelessObject(value) { + this.constructor.prototype= new MyPrototypeObject(value); +} +function MyPrototypeObject(value) { + this.valueOf = function(){return this.value}; + this.toString = function(){return this.value + ''}; + this.value = value; +} +function MyObject( value ) { + this.valueOf = function( ){return this.value}; + this.value = value; +} +function MyOtherObject( value ) { + this.valueOf = function( ) { return this.value; }; + this.toString = function( ) { return this.value + ''; }; + this.value = value; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/output.txt new file mode 100644 index 000000000..d2bc03ccf --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/output.txt @@ -0,0 +1,18 @@ +var EXP_1 = true; var EXP_2 = false; EXP_1 - EXP_2 PASSED! +var EXP_1 = new Boolean(true); var EXP_2 = new Boolean(false); EXP_1 - EXP_2 PASSED! +var EXP_1 = new Object(true); var EXP_2 = new Object(false); EXP_1 - EXP_2 PASSED! +var EXP_1 = new Object(new Boolean(true)); var EXP_2 = new Object(new Boolean(false)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyObject(true); var EXP_2 = new MyObject(false); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyObject(new Boolean(true)); var EXP_2 = new MyObject(new Boolean(false)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyOtherObject(new Boolean(true)); var EXP_2 = new MyOtherObject(new Boolean(false)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyValuelessObject(true); var EXP_2 = new MyValuelessObject(false); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyValuelessObject(new Boolean(true)); var EXP_2 = new MyValuelessObject(new Boolean(false)); EXP_1 - EXP_2 PASSED! +var EXP_1 = 100; var EXP_2 = 1; EXP_1 - EXP_2 PASSED! +var EXP_1 = new Number(100); var EXP_2 = new Number(1); EXP_1 - EXP_2 PASSED! +var EXP_1 = new Object(100); var EXP_2 = new Object(1); EXP_1 - EXP_2 PASSED! +var EXP_1 = new Object(new Number(100)); var EXP_2 = new Object(new Number(1)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyObject(100); var EXP_2 = new MyObject(1); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyObject(new Number(100)); var EXP_2 = new MyObject(new Number(1)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyOtherObject(new Number(100)); var EXP_2 = new MyOtherObject(new Number(1)); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyValuelessObject(100); var EXP_2 = new MyValuelessObject(1); EXP_1 - EXP_2 PASSED! +var EXP_1 = new MyOtherObject(new String('0xff')); var EXP_2 = new MyOtherObject(new String('1'); EXP_1 - EXP_2 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_2_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..743ac6ffd16142022104abc572990e65998984bf GIT binary patch literal 3444 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/output.txt new file mode 100644 index 000000000..8d6ffaaa8 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/output.txt @@ -0,0 +1,34 @@ +Number.NaN + 1 PASSED! +1 + Number.NaN PASSED! +Number.NaN - 1 PASSED! +1 - Number.NaN PASSED! +Number.POSITIVE_INFINITY + Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY + Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY + Number.NEGATIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY + Number.POSITIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY - Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY - Number.NEGATIVE_INFINITY PASSED! +Number.POSITIVE_INFINITY - Number.NEGATIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY - Number.POSITIVE_INFINITY PASSED! +-0 + -0 PASSED! +-0 - 0 PASSED! +0 + 0 PASSED! +0 + -0 PASSED! +0 - -0 PASSED! +0 - 0 PASSED! +-0 - -0 PASSED! +-0 + 0 PASSED! +Number.MAX_VALUE - Number.MAX_VALUE PASSED! +1/Number.MAX_VALUE - 1/Number.MAX_VALUE PASSED! +Number.MIN_VALUE - Number.MIN_VALUE PASSED! +Number.POSITIVE_INFINITY + 543.87 PASSED! +Number.NEGATIVE_INFINITY + 87456.093 PASSED! +95665 + Number.POSITIVE_INFINITY PASSED! +32.543906 + Number.NEGATIVE_INFINITY PASSED! +0 + 40453.65 PASSED! +0 - 745.33 PASSED! +67007.5 + 0 PASSED! +2480.00 - 0 PASSED! +2480.00 + -2480.00 PASSED! +-268.05 + 268.05 PASSED! +4324.43 + (-64.000503) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..9cdc78f7b93944d69fb17440b442c084797c206b GIT binary patch literal 3436 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 OM=<-h?f(K&Cx`z;mz~f6 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_6_3/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/Test.as new file mode 100644 index 000000000..6c2db77db --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/Test.as @@ -0,0 +1,175 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_7_1"; +// var VERSION = "ECMA_1"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + for ( power = 0; power < 33; power++ ) { + shiftexp = Math.pow( 2, power ); + + for ( addexp = 0; addexp < 33; addexp++ ) { + array[item++] = Assert.expectEq( + shiftexp + " << " + addexp, + LeftShift( shiftexp, addexp ), + shiftexp << addexp ); + } + } + + return ( array ); +} +function ToInteger( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( n != n ) { + return 0; + } + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) { + return n; + } + return ( sign * Math.floor(Math.abs(n)) ); +} +function ToInt32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = (sign * Math.floor( Math.abs(n) )) % Math.pow(2,32); + n = ( n >= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + + } + + return r; +} +function LeftShift( s, a ) { + var shift = ToInt32( s ); + var add = ToUint32( a ); + add = Mask( add, 5 ); + var exp = LShift( shift, add ); + + return ( exp ); +} +function LShift( s, a ) { + s = ToInt32BitString( s ); + + for ( var z = 0; z < a; z++ ) { + s += "0"; + } + + s = s.substring( a, s.length); + + return ToInt32(ToInt32Decimal(s)); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/output.txt new file mode 100644 index 000000000..3eba5d3e4 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/output.txt @@ -0,0 +1,1089 @@ +1 << 0 PASSED! +1 << 1 PASSED! +1 << 2 PASSED! +1 << 3 PASSED! +1 << 4 PASSED! +1 << 5 PASSED! +1 << 6 PASSED! +1 << 7 PASSED! +1 << 8 PASSED! +1 << 9 PASSED! +1 << 10 PASSED! +1 << 11 PASSED! +1 << 12 PASSED! +1 << 13 PASSED! +1 << 14 PASSED! +1 << 15 PASSED! +1 << 16 PASSED! +1 << 17 PASSED! +1 << 18 PASSED! +1 << 19 PASSED! +1 << 20 PASSED! +1 << 21 PASSED! +1 << 22 PASSED! +1 << 23 PASSED! +1 << 24 PASSED! +1 << 25 PASSED! +1 << 26 PASSED! +1 << 27 PASSED! +1 << 28 PASSED! +1 << 29 PASSED! +1 << 30 PASSED! +1 << 31 PASSED! +1 << 32 PASSED! +2 << 0 PASSED! +2 << 1 PASSED! +2 << 2 PASSED! +2 << 3 PASSED! +2 << 4 PASSED! +2 << 5 PASSED! +2 << 6 PASSED! +2 << 7 PASSED! +2 << 8 PASSED! +2 << 9 PASSED! +2 << 10 PASSED! +2 << 11 PASSED! +2 << 12 PASSED! +2 << 13 PASSED! +2 << 14 PASSED! +2 << 15 PASSED! +2 << 16 PASSED! +2 << 17 PASSED! +2 << 18 PASSED! +2 << 19 PASSED! +2 << 20 PASSED! +2 << 21 PASSED! +2 << 22 PASSED! +2 << 23 PASSED! +2 << 24 PASSED! +2 << 25 PASSED! +2 << 26 PASSED! +2 << 27 PASSED! +2 << 28 PASSED! +2 << 29 PASSED! +2 << 30 PASSED! +2 << 31 PASSED! +2 << 32 PASSED! +4 << 0 PASSED! +4 << 1 PASSED! +4 << 2 PASSED! +4 << 3 PASSED! +4 << 4 PASSED! +4 << 5 PASSED! +4 << 6 PASSED! +4 << 7 PASSED! +4 << 8 PASSED! +4 << 9 PASSED! +4 << 10 PASSED! +4 << 11 PASSED! +4 << 12 PASSED! +4 << 13 PASSED! +4 << 14 PASSED! +4 << 15 PASSED! +4 << 16 PASSED! +4 << 17 PASSED! +4 << 18 PASSED! +4 << 19 PASSED! +4 << 20 PASSED! +4 << 21 PASSED! +4 << 22 PASSED! +4 << 23 PASSED! +4 << 24 PASSED! +4 << 25 PASSED! +4 << 26 PASSED! +4 << 27 PASSED! +4 << 28 PASSED! +4 << 29 PASSED! +4 << 30 PASSED! +4 << 31 PASSED! +4 << 32 PASSED! +8 << 0 PASSED! +8 << 1 PASSED! +8 << 2 PASSED! +8 << 3 PASSED! +8 << 4 PASSED! +8 << 5 PASSED! +8 << 6 PASSED! +8 << 7 PASSED! +8 << 8 PASSED! +8 << 9 PASSED! +8 << 10 PASSED! +8 << 11 PASSED! +8 << 12 PASSED! +8 << 13 PASSED! +8 << 14 PASSED! +8 << 15 PASSED! +8 << 16 PASSED! +8 << 17 PASSED! +8 << 18 PASSED! +8 << 19 PASSED! +8 << 20 PASSED! +8 << 21 PASSED! +8 << 22 PASSED! +8 << 23 PASSED! +8 << 24 PASSED! +8 << 25 PASSED! +8 << 26 PASSED! +8 << 27 PASSED! +8 << 28 PASSED! +8 << 29 PASSED! +8 << 30 PASSED! +8 << 31 PASSED! +8 << 32 PASSED! +16 << 0 PASSED! +16 << 1 PASSED! +16 << 2 PASSED! +16 << 3 PASSED! +16 << 4 PASSED! +16 << 5 PASSED! +16 << 6 PASSED! +16 << 7 PASSED! +16 << 8 PASSED! +16 << 9 PASSED! +16 << 10 PASSED! +16 << 11 PASSED! +16 << 12 PASSED! +16 << 13 PASSED! +16 << 14 PASSED! +16 << 15 PASSED! +16 << 16 PASSED! +16 << 17 PASSED! +16 << 18 PASSED! +16 << 19 PASSED! +16 << 20 PASSED! +16 << 21 PASSED! +16 << 22 PASSED! +16 << 23 PASSED! +16 << 24 PASSED! +16 << 25 PASSED! +16 << 26 PASSED! +16 << 27 PASSED! +16 << 28 PASSED! +16 << 29 PASSED! +16 << 30 PASSED! +16 << 31 PASSED! +16 << 32 PASSED! +32 << 0 PASSED! +32 << 1 PASSED! +32 << 2 PASSED! +32 << 3 PASSED! +32 << 4 PASSED! +32 << 5 PASSED! +32 << 6 PASSED! +32 << 7 PASSED! +32 << 8 PASSED! +32 << 9 PASSED! +32 << 10 PASSED! +32 << 11 PASSED! +32 << 12 PASSED! +32 << 13 PASSED! +32 << 14 PASSED! +32 << 15 PASSED! +32 << 16 PASSED! +32 << 17 PASSED! +32 << 18 PASSED! +32 << 19 PASSED! +32 << 20 PASSED! +32 << 21 PASSED! +32 << 22 PASSED! +32 << 23 PASSED! +32 << 24 PASSED! +32 << 25 PASSED! +32 << 26 PASSED! +32 << 27 PASSED! +32 << 28 PASSED! +32 << 29 PASSED! +32 << 30 PASSED! +32 << 31 PASSED! +32 << 32 PASSED! +64 << 0 PASSED! +64 << 1 PASSED! +64 << 2 PASSED! +64 << 3 PASSED! +64 << 4 PASSED! +64 << 5 PASSED! +64 << 6 PASSED! +64 << 7 PASSED! +64 << 8 PASSED! +64 << 9 PASSED! +64 << 10 PASSED! +64 << 11 PASSED! +64 << 12 PASSED! +64 << 13 PASSED! +64 << 14 PASSED! +64 << 15 PASSED! +64 << 16 PASSED! +64 << 17 PASSED! +64 << 18 PASSED! +64 << 19 PASSED! +64 << 20 PASSED! +64 << 21 PASSED! +64 << 22 PASSED! +64 << 23 PASSED! +64 << 24 PASSED! +64 << 25 PASSED! +64 << 26 PASSED! +64 << 27 PASSED! +64 << 28 PASSED! +64 << 29 PASSED! +64 << 30 PASSED! +64 << 31 PASSED! +64 << 32 PASSED! +128 << 0 PASSED! +128 << 1 PASSED! +128 << 2 PASSED! +128 << 3 PASSED! +128 << 4 PASSED! +128 << 5 PASSED! +128 << 6 PASSED! +128 << 7 PASSED! +128 << 8 PASSED! +128 << 9 PASSED! +128 << 10 PASSED! +128 << 11 PASSED! +128 << 12 PASSED! +128 << 13 PASSED! +128 << 14 PASSED! +128 << 15 PASSED! +128 << 16 PASSED! +128 << 17 PASSED! +128 << 18 PASSED! +128 << 19 PASSED! +128 << 20 PASSED! +128 << 21 PASSED! +128 << 22 PASSED! +128 << 23 PASSED! +128 << 24 PASSED! +128 << 25 PASSED! +128 << 26 PASSED! +128 << 27 PASSED! +128 << 28 PASSED! +128 << 29 PASSED! +128 << 30 PASSED! +128 << 31 PASSED! +128 << 32 PASSED! +256 << 0 PASSED! +256 << 1 PASSED! +256 << 2 PASSED! +256 << 3 PASSED! +256 << 4 PASSED! +256 << 5 PASSED! +256 << 6 PASSED! +256 << 7 PASSED! +256 << 8 PASSED! +256 << 9 PASSED! +256 << 10 PASSED! +256 << 11 PASSED! +256 << 12 PASSED! +256 << 13 PASSED! +256 << 14 PASSED! +256 << 15 PASSED! +256 << 16 PASSED! +256 << 17 PASSED! +256 << 18 PASSED! +256 << 19 PASSED! +256 << 20 PASSED! +256 << 21 PASSED! +256 << 22 PASSED! +256 << 23 PASSED! +256 << 24 PASSED! +256 << 25 PASSED! +256 << 26 PASSED! +256 << 27 PASSED! +256 << 28 PASSED! +256 << 29 PASSED! +256 << 30 PASSED! +256 << 31 PASSED! +256 << 32 PASSED! +512 << 0 PASSED! +512 << 1 PASSED! +512 << 2 PASSED! +512 << 3 PASSED! +512 << 4 PASSED! +512 << 5 PASSED! +512 << 6 PASSED! +512 << 7 PASSED! +512 << 8 PASSED! +512 << 9 PASSED! +512 << 10 PASSED! +512 << 11 PASSED! +512 << 12 PASSED! +512 << 13 PASSED! +512 << 14 PASSED! +512 << 15 PASSED! +512 << 16 PASSED! +512 << 17 PASSED! +512 << 18 PASSED! +512 << 19 PASSED! +512 << 20 PASSED! +512 << 21 PASSED! +512 << 22 PASSED! +512 << 23 PASSED! +512 << 24 PASSED! +512 << 25 PASSED! +512 << 26 PASSED! +512 << 27 PASSED! +512 << 28 PASSED! +512 << 29 PASSED! +512 << 30 PASSED! +512 << 31 PASSED! +512 << 32 PASSED! +1024 << 0 PASSED! +1024 << 1 PASSED! +1024 << 2 PASSED! +1024 << 3 PASSED! +1024 << 4 PASSED! +1024 << 5 PASSED! +1024 << 6 PASSED! +1024 << 7 PASSED! +1024 << 8 PASSED! +1024 << 9 PASSED! +1024 << 10 PASSED! +1024 << 11 PASSED! +1024 << 12 PASSED! +1024 << 13 PASSED! +1024 << 14 PASSED! +1024 << 15 PASSED! +1024 << 16 PASSED! +1024 << 17 PASSED! +1024 << 18 PASSED! +1024 << 19 PASSED! +1024 << 20 PASSED! +1024 << 21 PASSED! +1024 << 22 PASSED! +1024 << 23 PASSED! +1024 << 24 PASSED! +1024 << 25 PASSED! +1024 << 26 PASSED! +1024 << 27 PASSED! +1024 << 28 PASSED! +1024 << 29 PASSED! +1024 << 30 PASSED! +1024 << 31 PASSED! +1024 << 32 PASSED! +2048 << 0 PASSED! +2048 << 1 PASSED! +2048 << 2 PASSED! +2048 << 3 PASSED! +2048 << 4 PASSED! +2048 << 5 PASSED! +2048 << 6 PASSED! +2048 << 7 PASSED! +2048 << 8 PASSED! +2048 << 9 PASSED! +2048 << 10 PASSED! +2048 << 11 PASSED! +2048 << 12 PASSED! +2048 << 13 PASSED! +2048 << 14 PASSED! +2048 << 15 PASSED! +2048 << 16 PASSED! +2048 << 17 PASSED! +2048 << 18 PASSED! +2048 << 19 PASSED! +2048 << 20 PASSED! +2048 << 21 PASSED! +2048 << 22 PASSED! +2048 << 23 PASSED! +2048 << 24 PASSED! +2048 << 25 PASSED! +2048 << 26 PASSED! +2048 << 27 PASSED! +2048 << 28 PASSED! +2048 << 29 PASSED! +2048 << 30 PASSED! +2048 << 31 PASSED! +2048 << 32 PASSED! +4096 << 0 PASSED! +4096 << 1 PASSED! +4096 << 2 PASSED! +4096 << 3 PASSED! +4096 << 4 PASSED! +4096 << 5 PASSED! +4096 << 6 PASSED! +4096 << 7 PASSED! +4096 << 8 PASSED! +4096 << 9 PASSED! +4096 << 10 PASSED! +4096 << 11 PASSED! +4096 << 12 PASSED! +4096 << 13 PASSED! +4096 << 14 PASSED! +4096 << 15 PASSED! +4096 << 16 PASSED! +4096 << 17 PASSED! +4096 << 18 PASSED! +4096 << 19 PASSED! +4096 << 20 PASSED! +4096 << 21 PASSED! +4096 << 22 PASSED! +4096 << 23 PASSED! +4096 << 24 PASSED! +4096 << 25 PASSED! +4096 << 26 PASSED! +4096 << 27 PASSED! +4096 << 28 PASSED! +4096 << 29 PASSED! +4096 << 30 PASSED! +4096 << 31 PASSED! +4096 << 32 PASSED! +8192 << 0 PASSED! +8192 << 1 PASSED! +8192 << 2 PASSED! +8192 << 3 PASSED! +8192 << 4 PASSED! +8192 << 5 PASSED! +8192 << 6 PASSED! +8192 << 7 PASSED! +8192 << 8 PASSED! +8192 << 9 PASSED! +8192 << 10 PASSED! +8192 << 11 PASSED! +8192 << 12 PASSED! +8192 << 13 PASSED! +8192 << 14 PASSED! +8192 << 15 PASSED! +8192 << 16 PASSED! +8192 << 17 PASSED! +8192 << 18 PASSED! +8192 << 19 PASSED! +8192 << 20 PASSED! +8192 << 21 PASSED! +8192 << 22 PASSED! +8192 << 23 PASSED! +8192 << 24 PASSED! +8192 << 25 PASSED! +8192 << 26 PASSED! +8192 << 27 PASSED! +8192 << 28 PASSED! +8192 << 29 PASSED! +8192 << 30 PASSED! +8192 << 31 PASSED! +8192 << 32 PASSED! +16384 << 0 PASSED! +16384 << 1 PASSED! +16384 << 2 PASSED! +16384 << 3 PASSED! +16384 << 4 PASSED! +16384 << 5 PASSED! +16384 << 6 PASSED! +16384 << 7 PASSED! +16384 << 8 PASSED! +16384 << 9 PASSED! +16384 << 10 PASSED! +16384 << 11 PASSED! +16384 << 12 PASSED! +16384 << 13 PASSED! +16384 << 14 PASSED! +16384 << 15 PASSED! +16384 << 16 PASSED! +16384 << 17 PASSED! +16384 << 18 PASSED! +16384 << 19 PASSED! +16384 << 20 PASSED! +16384 << 21 PASSED! +16384 << 22 PASSED! +16384 << 23 PASSED! +16384 << 24 PASSED! +16384 << 25 PASSED! +16384 << 26 PASSED! +16384 << 27 PASSED! +16384 << 28 PASSED! +16384 << 29 PASSED! +16384 << 30 PASSED! +16384 << 31 PASSED! +16384 << 32 PASSED! +32768 << 0 PASSED! +32768 << 1 PASSED! +32768 << 2 PASSED! +32768 << 3 PASSED! +32768 << 4 PASSED! +32768 << 5 PASSED! +32768 << 6 PASSED! +32768 << 7 PASSED! +32768 << 8 PASSED! +32768 << 9 PASSED! +32768 << 10 PASSED! +32768 << 11 PASSED! +32768 << 12 PASSED! +32768 << 13 PASSED! +32768 << 14 PASSED! +32768 << 15 PASSED! +32768 << 16 PASSED! +32768 << 17 PASSED! +32768 << 18 PASSED! +32768 << 19 PASSED! +32768 << 20 PASSED! +32768 << 21 PASSED! +32768 << 22 PASSED! +32768 << 23 PASSED! +32768 << 24 PASSED! +32768 << 25 PASSED! +32768 << 26 PASSED! +32768 << 27 PASSED! +32768 << 28 PASSED! +32768 << 29 PASSED! +32768 << 30 PASSED! +32768 << 31 PASSED! +32768 << 32 PASSED! +65536 << 0 PASSED! +65536 << 1 PASSED! +65536 << 2 PASSED! +65536 << 3 PASSED! +65536 << 4 PASSED! +65536 << 5 PASSED! +65536 << 6 PASSED! +65536 << 7 PASSED! +65536 << 8 PASSED! +65536 << 9 PASSED! +65536 << 10 PASSED! +65536 << 11 PASSED! +65536 << 12 PASSED! +65536 << 13 PASSED! +65536 << 14 PASSED! +65536 << 15 PASSED! +65536 << 16 PASSED! +65536 << 17 PASSED! +65536 << 18 PASSED! +65536 << 19 PASSED! +65536 << 20 PASSED! +65536 << 21 PASSED! +65536 << 22 PASSED! +65536 << 23 PASSED! +65536 << 24 PASSED! +65536 << 25 PASSED! +65536 << 26 PASSED! +65536 << 27 PASSED! +65536 << 28 PASSED! +65536 << 29 PASSED! +65536 << 30 PASSED! +65536 << 31 PASSED! +65536 << 32 PASSED! +131072 << 0 PASSED! +131072 << 1 PASSED! +131072 << 2 PASSED! +131072 << 3 PASSED! +131072 << 4 PASSED! +131072 << 5 PASSED! +131072 << 6 PASSED! +131072 << 7 PASSED! +131072 << 8 PASSED! +131072 << 9 PASSED! +131072 << 10 PASSED! +131072 << 11 PASSED! +131072 << 12 PASSED! +131072 << 13 PASSED! +131072 << 14 PASSED! +131072 << 15 PASSED! +131072 << 16 PASSED! +131072 << 17 PASSED! +131072 << 18 PASSED! +131072 << 19 PASSED! +131072 << 20 PASSED! +131072 << 21 PASSED! +131072 << 22 PASSED! +131072 << 23 PASSED! +131072 << 24 PASSED! +131072 << 25 PASSED! +131072 << 26 PASSED! +131072 << 27 PASSED! +131072 << 28 PASSED! +131072 << 29 PASSED! +131072 << 30 PASSED! +131072 << 31 PASSED! +131072 << 32 PASSED! +262144 << 0 PASSED! +262144 << 1 PASSED! +262144 << 2 PASSED! +262144 << 3 PASSED! +262144 << 4 PASSED! +262144 << 5 PASSED! +262144 << 6 PASSED! +262144 << 7 PASSED! +262144 << 8 PASSED! +262144 << 9 PASSED! +262144 << 10 PASSED! +262144 << 11 PASSED! +262144 << 12 PASSED! +262144 << 13 PASSED! +262144 << 14 PASSED! +262144 << 15 PASSED! +262144 << 16 PASSED! +262144 << 17 PASSED! +262144 << 18 PASSED! +262144 << 19 PASSED! +262144 << 20 PASSED! +262144 << 21 PASSED! +262144 << 22 PASSED! +262144 << 23 PASSED! +262144 << 24 PASSED! +262144 << 25 PASSED! +262144 << 26 PASSED! +262144 << 27 PASSED! +262144 << 28 PASSED! +262144 << 29 PASSED! +262144 << 30 PASSED! +262144 << 31 PASSED! +262144 << 32 PASSED! +524288 << 0 PASSED! +524288 << 1 PASSED! +524288 << 2 PASSED! +524288 << 3 PASSED! +524288 << 4 PASSED! +524288 << 5 PASSED! +524288 << 6 PASSED! +524288 << 7 PASSED! +524288 << 8 PASSED! +524288 << 9 PASSED! +524288 << 10 PASSED! +524288 << 11 PASSED! +524288 << 12 PASSED! +524288 << 13 PASSED! +524288 << 14 PASSED! +524288 << 15 PASSED! +524288 << 16 PASSED! +524288 << 17 PASSED! +524288 << 18 PASSED! +524288 << 19 PASSED! +524288 << 20 PASSED! +524288 << 21 PASSED! +524288 << 22 PASSED! +524288 << 23 PASSED! +524288 << 24 PASSED! +524288 << 25 PASSED! +524288 << 26 PASSED! +524288 << 27 PASSED! +524288 << 28 PASSED! +524288 << 29 PASSED! +524288 << 30 PASSED! +524288 << 31 PASSED! +524288 << 32 PASSED! +1048576 << 0 PASSED! +1048576 << 1 PASSED! +1048576 << 2 PASSED! +1048576 << 3 PASSED! +1048576 << 4 PASSED! +1048576 << 5 PASSED! +1048576 << 6 PASSED! +1048576 << 7 PASSED! +1048576 << 8 PASSED! +1048576 << 9 PASSED! +1048576 << 10 PASSED! +1048576 << 11 PASSED! +1048576 << 12 PASSED! +1048576 << 13 PASSED! +1048576 << 14 PASSED! +1048576 << 15 PASSED! +1048576 << 16 PASSED! +1048576 << 17 PASSED! +1048576 << 18 PASSED! +1048576 << 19 PASSED! +1048576 << 20 PASSED! +1048576 << 21 PASSED! +1048576 << 22 PASSED! +1048576 << 23 PASSED! +1048576 << 24 PASSED! +1048576 << 25 PASSED! +1048576 << 26 PASSED! +1048576 << 27 PASSED! +1048576 << 28 PASSED! +1048576 << 29 PASSED! +1048576 << 30 PASSED! +1048576 << 31 PASSED! +1048576 << 32 PASSED! +2097152 << 0 PASSED! +2097152 << 1 PASSED! +2097152 << 2 PASSED! +2097152 << 3 PASSED! +2097152 << 4 PASSED! +2097152 << 5 PASSED! +2097152 << 6 PASSED! +2097152 << 7 PASSED! +2097152 << 8 PASSED! +2097152 << 9 PASSED! +2097152 << 10 PASSED! +2097152 << 11 PASSED! +2097152 << 12 PASSED! +2097152 << 13 PASSED! +2097152 << 14 PASSED! +2097152 << 15 PASSED! +2097152 << 16 PASSED! +2097152 << 17 PASSED! +2097152 << 18 PASSED! +2097152 << 19 PASSED! +2097152 << 20 PASSED! +2097152 << 21 PASSED! +2097152 << 22 PASSED! +2097152 << 23 PASSED! +2097152 << 24 PASSED! +2097152 << 25 PASSED! +2097152 << 26 PASSED! +2097152 << 27 PASSED! +2097152 << 28 PASSED! +2097152 << 29 PASSED! +2097152 << 30 PASSED! +2097152 << 31 PASSED! +2097152 << 32 PASSED! +4194304 << 0 PASSED! +4194304 << 1 PASSED! +4194304 << 2 PASSED! +4194304 << 3 PASSED! +4194304 << 4 PASSED! +4194304 << 5 PASSED! +4194304 << 6 PASSED! +4194304 << 7 PASSED! +4194304 << 8 PASSED! +4194304 << 9 PASSED! +4194304 << 10 PASSED! +4194304 << 11 PASSED! +4194304 << 12 PASSED! +4194304 << 13 PASSED! +4194304 << 14 PASSED! +4194304 << 15 PASSED! +4194304 << 16 PASSED! +4194304 << 17 PASSED! +4194304 << 18 PASSED! +4194304 << 19 PASSED! +4194304 << 20 PASSED! +4194304 << 21 PASSED! +4194304 << 22 PASSED! +4194304 << 23 PASSED! +4194304 << 24 PASSED! +4194304 << 25 PASSED! +4194304 << 26 PASSED! +4194304 << 27 PASSED! +4194304 << 28 PASSED! +4194304 << 29 PASSED! +4194304 << 30 PASSED! +4194304 << 31 PASSED! +4194304 << 32 PASSED! +8388608 << 0 PASSED! +8388608 << 1 PASSED! +8388608 << 2 PASSED! +8388608 << 3 PASSED! +8388608 << 4 PASSED! +8388608 << 5 PASSED! +8388608 << 6 PASSED! +8388608 << 7 PASSED! +8388608 << 8 PASSED! +8388608 << 9 PASSED! +8388608 << 10 PASSED! +8388608 << 11 PASSED! +8388608 << 12 PASSED! +8388608 << 13 PASSED! +8388608 << 14 PASSED! +8388608 << 15 PASSED! +8388608 << 16 PASSED! +8388608 << 17 PASSED! +8388608 << 18 PASSED! +8388608 << 19 PASSED! +8388608 << 20 PASSED! +8388608 << 21 PASSED! +8388608 << 22 PASSED! +8388608 << 23 PASSED! +8388608 << 24 PASSED! +8388608 << 25 PASSED! +8388608 << 26 PASSED! +8388608 << 27 PASSED! +8388608 << 28 PASSED! +8388608 << 29 PASSED! +8388608 << 30 PASSED! +8388608 << 31 PASSED! +8388608 << 32 PASSED! +16777216 << 0 PASSED! +16777216 << 1 PASSED! +16777216 << 2 PASSED! +16777216 << 3 PASSED! +16777216 << 4 PASSED! +16777216 << 5 PASSED! +16777216 << 6 PASSED! +16777216 << 7 PASSED! +16777216 << 8 PASSED! +16777216 << 9 PASSED! +16777216 << 10 PASSED! +16777216 << 11 PASSED! +16777216 << 12 PASSED! +16777216 << 13 PASSED! +16777216 << 14 PASSED! +16777216 << 15 PASSED! +16777216 << 16 PASSED! +16777216 << 17 PASSED! +16777216 << 18 PASSED! +16777216 << 19 PASSED! +16777216 << 20 PASSED! +16777216 << 21 PASSED! +16777216 << 22 PASSED! +16777216 << 23 PASSED! +16777216 << 24 PASSED! +16777216 << 25 PASSED! +16777216 << 26 PASSED! +16777216 << 27 PASSED! +16777216 << 28 PASSED! +16777216 << 29 PASSED! +16777216 << 30 PASSED! +16777216 << 31 PASSED! +16777216 << 32 PASSED! +33554432 << 0 PASSED! +33554432 << 1 PASSED! +33554432 << 2 PASSED! +33554432 << 3 PASSED! +33554432 << 4 PASSED! +33554432 << 5 PASSED! +33554432 << 6 PASSED! +33554432 << 7 PASSED! +33554432 << 8 PASSED! +33554432 << 9 PASSED! +33554432 << 10 PASSED! +33554432 << 11 PASSED! +33554432 << 12 PASSED! +33554432 << 13 PASSED! +33554432 << 14 PASSED! +33554432 << 15 PASSED! +33554432 << 16 PASSED! +33554432 << 17 PASSED! +33554432 << 18 PASSED! +33554432 << 19 PASSED! +33554432 << 20 PASSED! +33554432 << 21 PASSED! +33554432 << 22 PASSED! +33554432 << 23 PASSED! +33554432 << 24 PASSED! +33554432 << 25 PASSED! +33554432 << 26 PASSED! +33554432 << 27 PASSED! +33554432 << 28 PASSED! +33554432 << 29 PASSED! +33554432 << 30 PASSED! +33554432 << 31 PASSED! +33554432 << 32 PASSED! +67108864 << 0 PASSED! +67108864 << 1 PASSED! +67108864 << 2 PASSED! +67108864 << 3 PASSED! +67108864 << 4 PASSED! +67108864 << 5 PASSED! +67108864 << 6 PASSED! +67108864 << 7 PASSED! +67108864 << 8 PASSED! +67108864 << 9 PASSED! +67108864 << 10 PASSED! +67108864 << 11 PASSED! +67108864 << 12 PASSED! +67108864 << 13 PASSED! +67108864 << 14 PASSED! +67108864 << 15 PASSED! +67108864 << 16 PASSED! +67108864 << 17 PASSED! +67108864 << 18 PASSED! +67108864 << 19 PASSED! +67108864 << 20 PASSED! +67108864 << 21 PASSED! +67108864 << 22 PASSED! +67108864 << 23 PASSED! +67108864 << 24 PASSED! +67108864 << 25 PASSED! +67108864 << 26 PASSED! +67108864 << 27 PASSED! +67108864 << 28 PASSED! +67108864 << 29 PASSED! +67108864 << 30 PASSED! +67108864 << 31 PASSED! +67108864 << 32 PASSED! +134217728 << 0 PASSED! +134217728 << 1 PASSED! +134217728 << 2 PASSED! +134217728 << 3 PASSED! +134217728 << 4 PASSED! +134217728 << 5 PASSED! +134217728 << 6 PASSED! +134217728 << 7 PASSED! +134217728 << 8 PASSED! +134217728 << 9 PASSED! +134217728 << 10 PASSED! +134217728 << 11 PASSED! +134217728 << 12 PASSED! +134217728 << 13 PASSED! +134217728 << 14 PASSED! +134217728 << 15 PASSED! +134217728 << 16 PASSED! +134217728 << 17 PASSED! +134217728 << 18 PASSED! +134217728 << 19 PASSED! +134217728 << 20 PASSED! +134217728 << 21 PASSED! +134217728 << 22 PASSED! +134217728 << 23 PASSED! +134217728 << 24 PASSED! +134217728 << 25 PASSED! +134217728 << 26 PASSED! +134217728 << 27 PASSED! +134217728 << 28 PASSED! +134217728 << 29 PASSED! +134217728 << 30 PASSED! +134217728 << 31 PASSED! +134217728 << 32 PASSED! +268435456 << 0 PASSED! +268435456 << 1 PASSED! +268435456 << 2 PASSED! +268435456 << 3 PASSED! +268435456 << 4 PASSED! +268435456 << 5 PASSED! +268435456 << 6 PASSED! +268435456 << 7 PASSED! +268435456 << 8 PASSED! +268435456 << 9 PASSED! +268435456 << 10 PASSED! +268435456 << 11 PASSED! +268435456 << 12 PASSED! +268435456 << 13 PASSED! +268435456 << 14 PASSED! +268435456 << 15 PASSED! +268435456 << 16 PASSED! +268435456 << 17 PASSED! +268435456 << 18 PASSED! +268435456 << 19 PASSED! +268435456 << 20 PASSED! +268435456 << 21 PASSED! +268435456 << 22 PASSED! +268435456 << 23 PASSED! +268435456 << 24 PASSED! +268435456 << 25 PASSED! +268435456 << 26 PASSED! +268435456 << 27 PASSED! +268435456 << 28 PASSED! +268435456 << 29 PASSED! +268435456 << 30 PASSED! +268435456 << 31 PASSED! +268435456 << 32 PASSED! +536870912 << 0 PASSED! +536870912 << 1 PASSED! +536870912 << 2 PASSED! +536870912 << 3 PASSED! +536870912 << 4 PASSED! +536870912 << 5 PASSED! +536870912 << 6 PASSED! +536870912 << 7 PASSED! +536870912 << 8 PASSED! +536870912 << 9 PASSED! +536870912 << 10 PASSED! +536870912 << 11 PASSED! +536870912 << 12 PASSED! +536870912 << 13 PASSED! +536870912 << 14 PASSED! +536870912 << 15 PASSED! +536870912 << 16 PASSED! +536870912 << 17 PASSED! +536870912 << 18 PASSED! +536870912 << 19 PASSED! +536870912 << 20 PASSED! +536870912 << 21 PASSED! +536870912 << 22 PASSED! +536870912 << 23 PASSED! +536870912 << 24 PASSED! +536870912 << 25 PASSED! +536870912 << 26 PASSED! +536870912 << 27 PASSED! +536870912 << 28 PASSED! +536870912 << 29 PASSED! +536870912 << 30 PASSED! +536870912 << 31 PASSED! +536870912 << 32 PASSED! +1073741824 << 0 PASSED! +1073741824 << 1 PASSED! +1073741824 << 2 PASSED! +1073741824 << 3 PASSED! +1073741824 << 4 PASSED! +1073741824 << 5 PASSED! +1073741824 << 6 PASSED! +1073741824 << 7 PASSED! +1073741824 << 8 PASSED! +1073741824 << 9 PASSED! +1073741824 << 10 PASSED! +1073741824 << 11 PASSED! +1073741824 << 12 PASSED! +1073741824 << 13 PASSED! +1073741824 << 14 PASSED! +1073741824 << 15 PASSED! +1073741824 << 16 PASSED! +1073741824 << 17 PASSED! +1073741824 << 18 PASSED! +1073741824 << 19 PASSED! +1073741824 << 20 PASSED! +1073741824 << 21 PASSED! +1073741824 << 22 PASSED! +1073741824 << 23 PASSED! +1073741824 << 24 PASSED! +1073741824 << 25 PASSED! +1073741824 << 26 PASSED! +1073741824 << 27 PASSED! +1073741824 << 28 PASSED! +1073741824 << 29 PASSED! +1073741824 << 30 PASSED! +1073741824 << 31 PASSED! +1073741824 << 32 PASSED! +2147483648 << 0 PASSED! +2147483648 << 1 PASSED! +2147483648 << 2 PASSED! +2147483648 << 3 PASSED! +2147483648 << 4 PASSED! +2147483648 << 5 PASSED! +2147483648 << 6 PASSED! +2147483648 << 7 PASSED! +2147483648 << 8 PASSED! +2147483648 << 9 PASSED! +2147483648 << 10 PASSED! +2147483648 << 11 PASSED! +2147483648 << 12 PASSED! +2147483648 << 13 PASSED! +2147483648 << 14 PASSED! +2147483648 << 15 PASSED! +2147483648 << 16 PASSED! +2147483648 << 17 PASSED! +2147483648 << 18 PASSED! +2147483648 << 19 PASSED! +2147483648 << 20 PASSED! +2147483648 << 21 PASSED! +2147483648 << 22 PASSED! +2147483648 << 23 PASSED! +2147483648 << 24 PASSED! +2147483648 << 25 PASSED! +2147483648 << 26 PASSED! +2147483648 << 27 PASSED! +2147483648 << 28 PASSED! +2147483648 << 29 PASSED! +2147483648 << 30 PASSED! +2147483648 << 31 PASSED! +2147483648 << 32 PASSED! +4294967296 << 0 PASSED! +4294967296 << 1 PASSED! +4294967296 << 2 PASSED! +4294967296 << 3 PASSED! +4294967296 << 4 PASSED! +4294967296 << 5 PASSED! +4294967296 << 6 PASSED! +4294967296 << 7 PASSED! +4294967296 << 8 PASSED! +4294967296 << 9 PASSED! +4294967296 << 10 PASSED! +4294967296 << 11 PASSED! +4294967296 << 12 PASSED! +4294967296 << 13 PASSED! +4294967296 << 14 PASSED! +4294967296 << 15 PASSED! +4294967296 << 16 PASSED! +4294967296 << 17 PASSED! +4294967296 << 18 PASSED! +4294967296 << 19 PASSED! +4294967296 << 20 PASSED! +4294967296 << 21 PASSED! +4294967296 << 22 PASSED! +4294967296 << 23 PASSED! +4294967296 << 24 PASSED! +4294967296 << 25 PASSED! +4294967296 << 26 PASSED! +4294967296 << 27 PASSED! +4294967296 << 28 PASSED! +4294967296 << 29 PASSED! +4294967296 << 30 PASSED! +4294967296 << 31 PASSED! +4294967296 << 32 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..6b970820e4c99317bad4347918e795011a1026b1 GIT binary patch literal 3422 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 " + addexp, + SignedRightShift( shiftexp, addexp ), + shiftexp >> addexp ); + } + } + + for ( power = 0; power <= 32; power++ ) { + shiftexp = -Math.pow( 2, power ); + + for ( addexp = 0; addexp <= 32; addexp++ ) { + array[item++] = Assert.expectEq( + shiftexp + " >> " + addexp, + SignedRightShift( shiftexp, addexp ), + shiftexp >> addexp ); + } + } + + return ( array ); +} + +function ToInteger( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( n != n ) { + return 0; + } + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) { + return n; + } + return ( sign * Math.floor(Math.abs(n)) ); +} +function ToInt32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = (sign * Math.floor( Math.abs(n) )) % Math.pow(2,32); + n = ( n >= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r = 0; + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function SignedRightShift( s, a ) { + s = ToInt32( s ); + a = ToUint32( a ); + a = Mask( a, 5 ); + return ( SignedRShift( s, a ) ); +} +function SignedRShift( s, a ) { + s = ToInt32BitString( s ); + + var firstbit = s.substring(0,1); + + s = s.substring( 1, s.length ); + + for ( var z = 0; z < a; z++ ) { + s = firstbit + s; + } + + s = s.substring( 0, s.length - a); + + s = firstbit +s; + + + return ToInt32(ToInt32Decimal(s)); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/output.txt new file mode 100644 index 000000000..ab25aa18b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/output.txt @@ -0,0 +1,2178 @@ +1 >> 0 PASSED! +1 >> 1 PASSED! +1 >> 2 PASSED! +1 >> 3 PASSED! +1 >> 4 PASSED! +1 >> 5 PASSED! +1 >> 6 PASSED! +1 >> 7 PASSED! +1 >> 8 PASSED! +1 >> 9 PASSED! +1 >> 10 PASSED! +1 >> 11 PASSED! +1 >> 12 PASSED! +1 >> 13 PASSED! +1 >> 14 PASSED! +1 >> 15 PASSED! +1 >> 16 PASSED! +1 >> 17 PASSED! +1 >> 18 PASSED! +1 >> 19 PASSED! +1 >> 20 PASSED! +1 >> 21 PASSED! +1 >> 22 PASSED! +1 >> 23 PASSED! +1 >> 24 PASSED! +1 >> 25 PASSED! +1 >> 26 PASSED! +1 >> 27 PASSED! +1 >> 28 PASSED! +1 >> 29 PASSED! +1 >> 30 PASSED! +1 >> 31 PASSED! +1 >> 32 PASSED! +2 >> 0 PASSED! +2 >> 1 PASSED! +2 >> 2 PASSED! +2 >> 3 PASSED! +2 >> 4 PASSED! +2 >> 5 PASSED! +2 >> 6 PASSED! +2 >> 7 PASSED! +2 >> 8 PASSED! +2 >> 9 PASSED! +2 >> 10 PASSED! +2 >> 11 PASSED! +2 >> 12 PASSED! +2 >> 13 PASSED! +2 >> 14 PASSED! +2 >> 15 PASSED! +2 >> 16 PASSED! +2 >> 17 PASSED! +2 >> 18 PASSED! +2 >> 19 PASSED! +2 >> 20 PASSED! +2 >> 21 PASSED! +2 >> 22 PASSED! +2 >> 23 PASSED! +2 >> 24 PASSED! +2 >> 25 PASSED! +2 >> 26 PASSED! +2 >> 27 PASSED! +2 >> 28 PASSED! +2 >> 29 PASSED! +2 >> 30 PASSED! +2 >> 31 PASSED! +2 >> 32 PASSED! +4 >> 0 PASSED! +4 >> 1 PASSED! +4 >> 2 PASSED! +4 >> 3 PASSED! +4 >> 4 PASSED! +4 >> 5 PASSED! +4 >> 6 PASSED! +4 >> 7 PASSED! +4 >> 8 PASSED! +4 >> 9 PASSED! +4 >> 10 PASSED! +4 >> 11 PASSED! +4 >> 12 PASSED! +4 >> 13 PASSED! +4 >> 14 PASSED! +4 >> 15 PASSED! +4 >> 16 PASSED! +4 >> 17 PASSED! +4 >> 18 PASSED! +4 >> 19 PASSED! +4 >> 20 PASSED! +4 >> 21 PASSED! +4 >> 22 PASSED! +4 >> 23 PASSED! +4 >> 24 PASSED! +4 >> 25 PASSED! +4 >> 26 PASSED! +4 >> 27 PASSED! +4 >> 28 PASSED! +4 >> 29 PASSED! +4 >> 30 PASSED! +4 >> 31 PASSED! +4 >> 32 PASSED! +8 >> 0 PASSED! +8 >> 1 PASSED! +8 >> 2 PASSED! +8 >> 3 PASSED! +8 >> 4 PASSED! +8 >> 5 PASSED! +8 >> 6 PASSED! +8 >> 7 PASSED! +8 >> 8 PASSED! +8 >> 9 PASSED! +8 >> 10 PASSED! +8 >> 11 PASSED! +8 >> 12 PASSED! +8 >> 13 PASSED! +8 >> 14 PASSED! +8 >> 15 PASSED! +8 >> 16 PASSED! +8 >> 17 PASSED! +8 >> 18 PASSED! +8 >> 19 PASSED! +8 >> 20 PASSED! +8 >> 21 PASSED! +8 >> 22 PASSED! +8 >> 23 PASSED! +8 >> 24 PASSED! +8 >> 25 PASSED! +8 >> 26 PASSED! +8 >> 27 PASSED! +8 >> 28 PASSED! +8 >> 29 PASSED! +8 >> 30 PASSED! +8 >> 31 PASSED! +8 >> 32 PASSED! +16 >> 0 PASSED! +16 >> 1 PASSED! +16 >> 2 PASSED! +16 >> 3 PASSED! +16 >> 4 PASSED! +16 >> 5 PASSED! +16 >> 6 PASSED! +16 >> 7 PASSED! +16 >> 8 PASSED! +16 >> 9 PASSED! +16 >> 10 PASSED! +16 >> 11 PASSED! +16 >> 12 PASSED! +16 >> 13 PASSED! +16 >> 14 PASSED! +16 >> 15 PASSED! +16 >> 16 PASSED! +16 >> 17 PASSED! +16 >> 18 PASSED! +16 >> 19 PASSED! +16 >> 20 PASSED! +16 >> 21 PASSED! +16 >> 22 PASSED! +16 >> 23 PASSED! +16 >> 24 PASSED! +16 >> 25 PASSED! +16 >> 26 PASSED! +16 >> 27 PASSED! +16 >> 28 PASSED! +16 >> 29 PASSED! +16 >> 30 PASSED! +16 >> 31 PASSED! +16 >> 32 PASSED! +32 >> 0 PASSED! +32 >> 1 PASSED! +32 >> 2 PASSED! +32 >> 3 PASSED! +32 >> 4 PASSED! +32 >> 5 PASSED! +32 >> 6 PASSED! +32 >> 7 PASSED! +32 >> 8 PASSED! +32 >> 9 PASSED! +32 >> 10 PASSED! +32 >> 11 PASSED! +32 >> 12 PASSED! +32 >> 13 PASSED! +32 >> 14 PASSED! +32 >> 15 PASSED! +32 >> 16 PASSED! +32 >> 17 PASSED! +32 >> 18 PASSED! +32 >> 19 PASSED! +32 >> 20 PASSED! +32 >> 21 PASSED! +32 >> 22 PASSED! +32 >> 23 PASSED! +32 >> 24 PASSED! +32 >> 25 PASSED! +32 >> 26 PASSED! +32 >> 27 PASSED! +32 >> 28 PASSED! +32 >> 29 PASSED! +32 >> 30 PASSED! +32 >> 31 PASSED! +32 >> 32 PASSED! +64 >> 0 PASSED! +64 >> 1 PASSED! +64 >> 2 PASSED! +64 >> 3 PASSED! +64 >> 4 PASSED! +64 >> 5 PASSED! +64 >> 6 PASSED! +64 >> 7 PASSED! +64 >> 8 PASSED! +64 >> 9 PASSED! +64 >> 10 PASSED! +64 >> 11 PASSED! +64 >> 12 PASSED! +64 >> 13 PASSED! +64 >> 14 PASSED! +64 >> 15 PASSED! +64 >> 16 PASSED! +64 >> 17 PASSED! +64 >> 18 PASSED! +64 >> 19 PASSED! +64 >> 20 PASSED! +64 >> 21 PASSED! +64 >> 22 PASSED! +64 >> 23 PASSED! +64 >> 24 PASSED! +64 >> 25 PASSED! +64 >> 26 PASSED! +64 >> 27 PASSED! +64 >> 28 PASSED! +64 >> 29 PASSED! +64 >> 30 PASSED! +64 >> 31 PASSED! +64 >> 32 PASSED! +128 >> 0 PASSED! +128 >> 1 PASSED! +128 >> 2 PASSED! +128 >> 3 PASSED! +128 >> 4 PASSED! +128 >> 5 PASSED! +128 >> 6 PASSED! +128 >> 7 PASSED! +128 >> 8 PASSED! +128 >> 9 PASSED! +128 >> 10 PASSED! +128 >> 11 PASSED! +128 >> 12 PASSED! +128 >> 13 PASSED! +128 >> 14 PASSED! +128 >> 15 PASSED! +128 >> 16 PASSED! +128 >> 17 PASSED! +128 >> 18 PASSED! +128 >> 19 PASSED! +128 >> 20 PASSED! +128 >> 21 PASSED! +128 >> 22 PASSED! +128 >> 23 PASSED! +128 >> 24 PASSED! +128 >> 25 PASSED! +128 >> 26 PASSED! +128 >> 27 PASSED! +128 >> 28 PASSED! +128 >> 29 PASSED! +128 >> 30 PASSED! +128 >> 31 PASSED! +128 >> 32 PASSED! +256 >> 0 PASSED! +256 >> 1 PASSED! +256 >> 2 PASSED! +256 >> 3 PASSED! +256 >> 4 PASSED! +256 >> 5 PASSED! +256 >> 6 PASSED! +256 >> 7 PASSED! +256 >> 8 PASSED! +256 >> 9 PASSED! +256 >> 10 PASSED! +256 >> 11 PASSED! +256 >> 12 PASSED! +256 >> 13 PASSED! +256 >> 14 PASSED! +256 >> 15 PASSED! +256 >> 16 PASSED! +256 >> 17 PASSED! +256 >> 18 PASSED! +256 >> 19 PASSED! +256 >> 20 PASSED! +256 >> 21 PASSED! +256 >> 22 PASSED! +256 >> 23 PASSED! +256 >> 24 PASSED! +256 >> 25 PASSED! +256 >> 26 PASSED! +256 >> 27 PASSED! +256 >> 28 PASSED! +256 >> 29 PASSED! +256 >> 30 PASSED! +256 >> 31 PASSED! +256 >> 32 PASSED! +512 >> 0 PASSED! +512 >> 1 PASSED! +512 >> 2 PASSED! +512 >> 3 PASSED! +512 >> 4 PASSED! +512 >> 5 PASSED! +512 >> 6 PASSED! +512 >> 7 PASSED! +512 >> 8 PASSED! +512 >> 9 PASSED! +512 >> 10 PASSED! +512 >> 11 PASSED! +512 >> 12 PASSED! +512 >> 13 PASSED! +512 >> 14 PASSED! +512 >> 15 PASSED! +512 >> 16 PASSED! +512 >> 17 PASSED! +512 >> 18 PASSED! +512 >> 19 PASSED! +512 >> 20 PASSED! +512 >> 21 PASSED! +512 >> 22 PASSED! +512 >> 23 PASSED! +512 >> 24 PASSED! +512 >> 25 PASSED! +512 >> 26 PASSED! +512 >> 27 PASSED! +512 >> 28 PASSED! +512 >> 29 PASSED! +512 >> 30 PASSED! +512 >> 31 PASSED! +512 >> 32 PASSED! +1024 >> 0 PASSED! +1024 >> 1 PASSED! +1024 >> 2 PASSED! +1024 >> 3 PASSED! +1024 >> 4 PASSED! +1024 >> 5 PASSED! +1024 >> 6 PASSED! +1024 >> 7 PASSED! +1024 >> 8 PASSED! +1024 >> 9 PASSED! +1024 >> 10 PASSED! +1024 >> 11 PASSED! +1024 >> 12 PASSED! +1024 >> 13 PASSED! +1024 >> 14 PASSED! +1024 >> 15 PASSED! +1024 >> 16 PASSED! +1024 >> 17 PASSED! +1024 >> 18 PASSED! +1024 >> 19 PASSED! +1024 >> 20 PASSED! +1024 >> 21 PASSED! +1024 >> 22 PASSED! +1024 >> 23 PASSED! +1024 >> 24 PASSED! +1024 >> 25 PASSED! +1024 >> 26 PASSED! +1024 >> 27 PASSED! +1024 >> 28 PASSED! +1024 >> 29 PASSED! +1024 >> 30 PASSED! +1024 >> 31 PASSED! +1024 >> 32 PASSED! +2048 >> 0 PASSED! +2048 >> 1 PASSED! +2048 >> 2 PASSED! +2048 >> 3 PASSED! +2048 >> 4 PASSED! +2048 >> 5 PASSED! +2048 >> 6 PASSED! +2048 >> 7 PASSED! +2048 >> 8 PASSED! +2048 >> 9 PASSED! +2048 >> 10 PASSED! +2048 >> 11 PASSED! +2048 >> 12 PASSED! +2048 >> 13 PASSED! +2048 >> 14 PASSED! +2048 >> 15 PASSED! +2048 >> 16 PASSED! +2048 >> 17 PASSED! +2048 >> 18 PASSED! +2048 >> 19 PASSED! +2048 >> 20 PASSED! +2048 >> 21 PASSED! +2048 >> 22 PASSED! +2048 >> 23 PASSED! +2048 >> 24 PASSED! +2048 >> 25 PASSED! +2048 >> 26 PASSED! +2048 >> 27 PASSED! +2048 >> 28 PASSED! +2048 >> 29 PASSED! +2048 >> 30 PASSED! +2048 >> 31 PASSED! +2048 >> 32 PASSED! +4096 >> 0 PASSED! +4096 >> 1 PASSED! +4096 >> 2 PASSED! +4096 >> 3 PASSED! +4096 >> 4 PASSED! +4096 >> 5 PASSED! +4096 >> 6 PASSED! +4096 >> 7 PASSED! +4096 >> 8 PASSED! +4096 >> 9 PASSED! +4096 >> 10 PASSED! +4096 >> 11 PASSED! +4096 >> 12 PASSED! +4096 >> 13 PASSED! +4096 >> 14 PASSED! +4096 >> 15 PASSED! +4096 >> 16 PASSED! +4096 >> 17 PASSED! +4096 >> 18 PASSED! +4096 >> 19 PASSED! +4096 >> 20 PASSED! +4096 >> 21 PASSED! +4096 >> 22 PASSED! +4096 >> 23 PASSED! +4096 >> 24 PASSED! +4096 >> 25 PASSED! +4096 >> 26 PASSED! +4096 >> 27 PASSED! +4096 >> 28 PASSED! +4096 >> 29 PASSED! +4096 >> 30 PASSED! +4096 >> 31 PASSED! +4096 >> 32 PASSED! +8192 >> 0 PASSED! +8192 >> 1 PASSED! +8192 >> 2 PASSED! +8192 >> 3 PASSED! +8192 >> 4 PASSED! +8192 >> 5 PASSED! +8192 >> 6 PASSED! +8192 >> 7 PASSED! +8192 >> 8 PASSED! +8192 >> 9 PASSED! +8192 >> 10 PASSED! +8192 >> 11 PASSED! +8192 >> 12 PASSED! +8192 >> 13 PASSED! +8192 >> 14 PASSED! +8192 >> 15 PASSED! +8192 >> 16 PASSED! +8192 >> 17 PASSED! +8192 >> 18 PASSED! +8192 >> 19 PASSED! +8192 >> 20 PASSED! +8192 >> 21 PASSED! +8192 >> 22 PASSED! +8192 >> 23 PASSED! +8192 >> 24 PASSED! +8192 >> 25 PASSED! +8192 >> 26 PASSED! +8192 >> 27 PASSED! +8192 >> 28 PASSED! +8192 >> 29 PASSED! +8192 >> 30 PASSED! +8192 >> 31 PASSED! +8192 >> 32 PASSED! +16384 >> 0 PASSED! +16384 >> 1 PASSED! +16384 >> 2 PASSED! +16384 >> 3 PASSED! +16384 >> 4 PASSED! +16384 >> 5 PASSED! +16384 >> 6 PASSED! +16384 >> 7 PASSED! +16384 >> 8 PASSED! +16384 >> 9 PASSED! +16384 >> 10 PASSED! +16384 >> 11 PASSED! +16384 >> 12 PASSED! +16384 >> 13 PASSED! +16384 >> 14 PASSED! +16384 >> 15 PASSED! +16384 >> 16 PASSED! +16384 >> 17 PASSED! +16384 >> 18 PASSED! +16384 >> 19 PASSED! +16384 >> 20 PASSED! +16384 >> 21 PASSED! +16384 >> 22 PASSED! +16384 >> 23 PASSED! +16384 >> 24 PASSED! +16384 >> 25 PASSED! +16384 >> 26 PASSED! +16384 >> 27 PASSED! +16384 >> 28 PASSED! +16384 >> 29 PASSED! +16384 >> 30 PASSED! +16384 >> 31 PASSED! +16384 >> 32 PASSED! +32768 >> 0 PASSED! +32768 >> 1 PASSED! +32768 >> 2 PASSED! +32768 >> 3 PASSED! +32768 >> 4 PASSED! +32768 >> 5 PASSED! +32768 >> 6 PASSED! +32768 >> 7 PASSED! +32768 >> 8 PASSED! +32768 >> 9 PASSED! +32768 >> 10 PASSED! +32768 >> 11 PASSED! +32768 >> 12 PASSED! +32768 >> 13 PASSED! +32768 >> 14 PASSED! +32768 >> 15 PASSED! +32768 >> 16 PASSED! +32768 >> 17 PASSED! +32768 >> 18 PASSED! +32768 >> 19 PASSED! +32768 >> 20 PASSED! +32768 >> 21 PASSED! +32768 >> 22 PASSED! +32768 >> 23 PASSED! +32768 >> 24 PASSED! +32768 >> 25 PASSED! +32768 >> 26 PASSED! +32768 >> 27 PASSED! +32768 >> 28 PASSED! +32768 >> 29 PASSED! +32768 >> 30 PASSED! +32768 >> 31 PASSED! +32768 >> 32 PASSED! +65536 >> 0 PASSED! +65536 >> 1 PASSED! +65536 >> 2 PASSED! +65536 >> 3 PASSED! +65536 >> 4 PASSED! +65536 >> 5 PASSED! +65536 >> 6 PASSED! +65536 >> 7 PASSED! +65536 >> 8 PASSED! +65536 >> 9 PASSED! +65536 >> 10 PASSED! +65536 >> 11 PASSED! +65536 >> 12 PASSED! +65536 >> 13 PASSED! +65536 >> 14 PASSED! +65536 >> 15 PASSED! +65536 >> 16 PASSED! +65536 >> 17 PASSED! +65536 >> 18 PASSED! +65536 >> 19 PASSED! +65536 >> 20 PASSED! +65536 >> 21 PASSED! +65536 >> 22 PASSED! +65536 >> 23 PASSED! +65536 >> 24 PASSED! +65536 >> 25 PASSED! +65536 >> 26 PASSED! +65536 >> 27 PASSED! +65536 >> 28 PASSED! +65536 >> 29 PASSED! +65536 >> 30 PASSED! +65536 >> 31 PASSED! +65536 >> 32 PASSED! +131072 >> 0 PASSED! +131072 >> 1 PASSED! +131072 >> 2 PASSED! +131072 >> 3 PASSED! +131072 >> 4 PASSED! +131072 >> 5 PASSED! +131072 >> 6 PASSED! +131072 >> 7 PASSED! +131072 >> 8 PASSED! +131072 >> 9 PASSED! +131072 >> 10 PASSED! +131072 >> 11 PASSED! +131072 >> 12 PASSED! +131072 >> 13 PASSED! +131072 >> 14 PASSED! +131072 >> 15 PASSED! +131072 >> 16 PASSED! +131072 >> 17 PASSED! +131072 >> 18 PASSED! +131072 >> 19 PASSED! +131072 >> 20 PASSED! +131072 >> 21 PASSED! +131072 >> 22 PASSED! +131072 >> 23 PASSED! +131072 >> 24 PASSED! +131072 >> 25 PASSED! +131072 >> 26 PASSED! +131072 >> 27 PASSED! +131072 >> 28 PASSED! +131072 >> 29 PASSED! +131072 >> 30 PASSED! +131072 >> 31 PASSED! +131072 >> 32 PASSED! +262144 >> 0 PASSED! +262144 >> 1 PASSED! +262144 >> 2 PASSED! +262144 >> 3 PASSED! +262144 >> 4 PASSED! +262144 >> 5 PASSED! +262144 >> 6 PASSED! +262144 >> 7 PASSED! +262144 >> 8 PASSED! +262144 >> 9 PASSED! +262144 >> 10 PASSED! +262144 >> 11 PASSED! +262144 >> 12 PASSED! +262144 >> 13 PASSED! +262144 >> 14 PASSED! +262144 >> 15 PASSED! +262144 >> 16 PASSED! +262144 >> 17 PASSED! +262144 >> 18 PASSED! +262144 >> 19 PASSED! +262144 >> 20 PASSED! +262144 >> 21 PASSED! +262144 >> 22 PASSED! +262144 >> 23 PASSED! +262144 >> 24 PASSED! +262144 >> 25 PASSED! +262144 >> 26 PASSED! +262144 >> 27 PASSED! +262144 >> 28 PASSED! +262144 >> 29 PASSED! +262144 >> 30 PASSED! +262144 >> 31 PASSED! +262144 >> 32 PASSED! +524288 >> 0 PASSED! +524288 >> 1 PASSED! +524288 >> 2 PASSED! +524288 >> 3 PASSED! +524288 >> 4 PASSED! +524288 >> 5 PASSED! +524288 >> 6 PASSED! +524288 >> 7 PASSED! +524288 >> 8 PASSED! +524288 >> 9 PASSED! +524288 >> 10 PASSED! +524288 >> 11 PASSED! +524288 >> 12 PASSED! +524288 >> 13 PASSED! +524288 >> 14 PASSED! +524288 >> 15 PASSED! +524288 >> 16 PASSED! +524288 >> 17 PASSED! +524288 >> 18 PASSED! +524288 >> 19 PASSED! +524288 >> 20 PASSED! +524288 >> 21 PASSED! +524288 >> 22 PASSED! +524288 >> 23 PASSED! +524288 >> 24 PASSED! +524288 >> 25 PASSED! +524288 >> 26 PASSED! +524288 >> 27 PASSED! +524288 >> 28 PASSED! +524288 >> 29 PASSED! +524288 >> 30 PASSED! +524288 >> 31 PASSED! +524288 >> 32 PASSED! +1048576 >> 0 PASSED! +1048576 >> 1 PASSED! +1048576 >> 2 PASSED! +1048576 >> 3 PASSED! +1048576 >> 4 PASSED! +1048576 >> 5 PASSED! +1048576 >> 6 PASSED! +1048576 >> 7 PASSED! +1048576 >> 8 PASSED! +1048576 >> 9 PASSED! +1048576 >> 10 PASSED! +1048576 >> 11 PASSED! +1048576 >> 12 PASSED! +1048576 >> 13 PASSED! +1048576 >> 14 PASSED! +1048576 >> 15 PASSED! +1048576 >> 16 PASSED! +1048576 >> 17 PASSED! +1048576 >> 18 PASSED! +1048576 >> 19 PASSED! +1048576 >> 20 PASSED! +1048576 >> 21 PASSED! +1048576 >> 22 PASSED! +1048576 >> 23 PASSED! +1048576 >> 24 PASSED! +1048576 >> 25 PASSED! +1048576 >> 26 PASSED! +1048576 >> 27 PASSED! +1048576 >> 28 PASSED! +1048576 >> 29 PASSED! +1048576 >> 30 PASSED! +1048576 >> 31 PASSED! +1048576 >> 32 PASSED! +2097152 >> 0 PASSED! +2097152 >> 1 PASSED! +2097152 >> 2 PASSED! +2097152 >> 3 PASSED! +2097152 >> 4 PASSED! +2097152 >> 5 PASSED! +2097152 >> 6 PASSED! +2097152 >> 7 PASSED! +2097152 >> 8 PASSED! +2097152 >> 9 PASSED! +2097152 >> 10 PASSED! +2097152 >> 11 PASSED! +2097152 >> 12 PASSED! +2097152 >> 13 PASSED! +2097152 >> 14 PASSED! +2097152 >> 15 PASSED! +2097152 >> 16 PASSED! +2097152 >> 17 PASSED! +2097152 >> 18 PASSED! +2097152 >> 19 PASSED! +2097152 >> 20 PASSED! +2097152 >> 21 PASSED! +2097152 >> 22 PASSED! +2097152 >> 23 PASSED! +2097152 >> 24 PASSED! +2097152 >> 25 PASSED! +2097152 >> 26 PASSED! +2097152 >> 27 PASSED! +2097152 >> 28 PASSED! +2097152 >> 29 PASSED! +2097152 >> 30 PASSED! +2097152 >> 31 PASSED! +2097152 >> 32 PASSED! +4194304 >> 0 PASSED! +4194304 >> 1 PASSED! +4194304 >> 2 PASSED! +4194304 >> 3 PASSED! +4194304 >> 4 PASSED! +4194304 >> 5 PASSED! +4194304 >> 6 PASSED! +4194304 >> 7 PASSED! +4194304 >> 8 PASSED! +4194304 >> 9 PASSED! +4194304 >> 10 PASSED! +4194304 >> 11 PASSED! +4194304 >> 12 PASSED! +4194304 >> 13 PASSED! +4194304 >> 14 PASSED! +4194304 >> 15 PASSED! +4194304 >> 16 PASSED! +4194304 >> 17 PASSED! +4194304 >> 18 PASSED! +4194304 >> 19 PASSED! +4194304 >> 20 PASSED! +4194304 >> 21 PASSED! +4194304 >> 22 PASSED! +4194304 >> 23 PASSED! +4194304 >> 24 PASSED! +4194304 >> 25 PASSED! +4194304 >> 26 PASSED! +4194304 >> 27 PASSED! +4194304 >> 28 PASSED! +4194304 >> 29 PASSED! +4194304 >> 30 PASSED! +4194304 >> 31 PASSED! +4194304 >> 32 PASSED! +8388608 >> 0 PASSED! +8388608 >> 1 PASSED! +8388608 >> 2 PASSED! +8388608 >> 3 PASSED! +8388608 >> 4 PASSED! +8388608 >> 5 PASSED! +8388608 >> 6 PASSED! +8388608 >> 7 PASSED! +8388608 >> 8 PASSED! +8388608 >> 9 PASSED! +8388608 >> 10 PASSED! +8388608 >> 11 PASSED! +8388608 >> 12 PASSED! +8388608 >> 13 PASSED! +8388608 >> 14 PASSED! +8388608 >> 15 PASSED! +8388608 >> 16 PASSED! +8388608 >> 17 PASSED! +8388608 >> 18 PASSED! +8388608 >> 19 PASSED! +8388608 >> 20 PASSED! +8388608 >> 21 PASSED! +8388608 >> 22 PASSED! +8388608 >> 23 PASSED! +8388608 >> 24 PASSED! +8388608 >> 25 PASSED! +8388608 >> 26 PASSED! +8388608 >> 27 PASSED! +8388608 >> 28 PASSED! +8388608 >> 29 PASSED! +8388608 >> 30 PASSED! +8388608 >> 31 PASSED! +8388608 >> 32 PASSED! +16777216 >> 0 PASSED! +16777216 >> 1 PASSED! +16777216 >> 2 PASSED! +16777216 >> 3 PASSED! +16777216 >> 4 PASSED! +16777216 >> 5 PASSED! +16777216 >> 6 PASSED! +16777216 >> 7 PASSED! +16777216 >> 8 PASSED! +16777216 >> 9 PASSED! +16777216 >> 10 PASSED! +16777216 >> 11 PASSED! +16777216 >> 12 PASSED! +16777216 >> 13 PASSED! +16777216 >> 14 PASSED! +16777216 >> 15 PASSED! +16777216 >> 16 PASSED! +16777216 >> 17 PASSED! +16777216 >> 18 PASSED! +16777216 >> 19 PASSED! +16777216 >> 20 PASSED! +16777216 >> 21 PASSED! +16777216 >> 22 PASSED! +16777216 >> 23 PASSED! +16777216 >> 24 PASSED! +16777216 >> 25 PASSED! +16777216 >> 26 PASSED! +16777216 >> 27 PASSED! +16777216 >> 28 PASSED! +16777216 >> 29 PASSED! +16777216 >> 30 PASSED! +16777216 >> 31 PASSED! +16777216 >> 32 PASSED! +33554432 >> 0 PASSED! +33554432 >> 1 PASSED! +33554432 >> 2 PASSED! +33554432 >> 3 PASSED! +33554432 >> 4 PASSED! +33554432 >> 5 PASSED! +33554432 >> 6 PASSED! +33554432 >> 7 PASSED! +33554432 >> 8 PASSED! +33554432 >> 9 PASSED! +33554432 >> 10 PASSED! +33554432 >> 11 PASSED! +33554432 >> 12 PASSED! +33554432 >> 13 PASSED! +33554432 >> 14 PASSED! +33554432 >> 15 PASSED! +33554432 >> 16 PASSED! +33554432 >> 17 PASSED! +33554432 >> 18 PASSED! +33554432 >> 19 PASSED! +33554432 >> 20 PASSED! +33554432 >> 21 PASSED! +33554432 >> 22 PASSED! +33554432 >> 23 PASSED! +33554432 >> 24 PASSED! +33554432 >> 25 PASSED! +33554432 >> 26 PASSED! +33554432 >> 27 PASSED! +33554432 >> 28 PASSED! +33554432 >> 29 PASSED! +33554432 >> 30 PASSED! +33554432 >> 31 PASSED! +33554432 >> 32 PASSED! +67108864 >> 0 PASSED! +67108864 >> 1 PASSED! +67108864 >> 2 PASSED! +67108864 >> 3 PASSED! +67108864 >> 4 PASSED! +67108864 >> 5 PASSED! +67108864 >> 6 PASSED! +67108864 >> 7 PASSED! +67108864 >> 8 PASSED! +67108864 >> 9 PASSED! +67108864 >> 10 PASSED! +67108864 >> 11 PASSED! +67108864 >> 12 PASSED! +67108864 >> 13 PASSED! +67108864 >> 14 PASSED! +67108864 >> 15 PASSED! +67108864 >> 16 PASSED! +67108864 >> 17 PASSED! +67108864 >> 18 PASSED! +67108864 >> 19 PASSED! +67108864 >> 20 PASSED! +67108864 >> 21 PASSED! +67108864 >> 22 PASSED! +67108864 >> 23 PASSED! +67108864 >> 24 PASSED! +67108864 >> 25 PASSED! +67108864 >> 26 PASSED! +67108864 >> 27 PASSED! +67108864 >> 28 PASSED! +67108864 >> 29 PASSED! +67108864 >> 30 PASSED! +67108864 >> 31 PASSED! +67108864 >> 32 PASSED! +134217728 >> 0 PASSED! +134217728 >> 1 PASSED! +134217728 >> 2 PASSED! +134217728 >> 3 PASSED! +134217728 >> 4 PASSED! +134217728 >> 5 PASSED! +134217728 >> 6 PASSED! +134217728 >> 7 PASSED! +134217728 >> 8 PASSED! +134217728 >> 9 PASSED! +134217728 >> 10 PASSED! +134217728 >> 11 PASSED! +134217728 >> 12 PASSED! +134217728 >> 13 PASSED! +134217728 >> 14 PASSED! +134217728 >> 15 PASSED! +134217728 >> 16 PASSED! +134217728 >> 17 PASSED! +134217728 >> 18 PASSED! +134217728 >> 19 PASSED! +134217728 >> 20 PASSED! +134217728 >> 21 PASSED! +134217728 >> 22 PASSED! +134217728 >> 23 PASSED! +134217728 >> 24 PASSED! +134217728 >> 25 PASSED! +134217728 >> 26 PASSED! +134217728 >> 27 PASSED! +134217728 >> 28 PASSED! +134217728 >> 29 PASSED! +134217728 >> 30 PASSED! +134217728 >> 31 PASSED! +134217728 >> 32 PASSED! +268435456 >> 0 PASSED! +268435456 >> 1 PASSED! +268435456 >> 2 PASSED! +268435456 >> 3 PASSED! +268435456 >> 4 PASSED! +268435456 >> 5 PASSED! +268435456 >> 6 PASSED! +268435456 >> 7 PASSED! +268435456 >> 8 PASSED! +268435456 >> 9 PASSED! +268435456 >> 10 PASSED! +268435456 >> 11 PASSED! +268435456 >> 12 PASSED! +268435456 >> 13 PASSED! +268435456 >> 14 PASSED! +268435456 >> 15 PASSED! +268435456 >> 16 PASSED! +268435456 >> 17 PASSED! +268435456 >> 18 PASSED! +268435456 >> 19 PASSED! +268435456 >> 20 PASSED! +268435456 >> 21 PASSED! +268435456 >> 22 PASSED! +268435456 >> 23 PASSED! +268435456 >> 24 PASSED! +268435456 >> 25 PASSED! +268435456 >> 26 PASSED! +268435456 >> 27 PASSED! +268435456 >> 28 PASSED! +268435456 >> 29 PASSED! +268435456 >> 30 PASSED! +268435456 >> 31 PASSED! +268435456 >> 32 PASSED! +536870912 >> 0 PASSED! +536870912 >> 1 PASSED! +536870912 >> 2 PASSED! +536870912 >> 3 PASSED! +536870912 >> 4 PASSED! +536870912 >> 5 PASSED! +536870912 >> 6 PASSED! +536870912 >> 7 PASSED! +536870912 >> 8 PASSED! +536870912 >> 9 PASSED! +536870912 >> 10 PASSED! +536870912 >> 11 PASSED! +536870912 >> 12 PASSED! +536870912 >> 13 PASSED! +536870912 >> 14 PASSED! +536870912 >> 15 PASSED! +536870912 >> 16 PASSED! +536870912 >> 17 PASSED! +536870912 >> 18 PASSED! +536870912 >> 19 PASSED! +536870912 >> 20 PASSED! +536870912 >> 21 PASSED! +536870912 >> 22 PASSED! +536870912 >> 23 PASSED! +536870912 >> 24 PASSED! +536870912 >> 25 PASSED! +536870912 >> 26 PASSED! +536870912 >> 27 PASSED! +536870912 >> 28 PASSED! +536870912 >> 29 PASSED! +536870912 >> 30 PASSED! +536870912 >> 31 PASSED! +536870912 >> 32 PASSED! +1073741824 >> 0 PASSED! +1073741824 >> 1 PASSED! +1073741824 >> 2 PASSED! +1073741824 >> 3 PASSED! +1073741824 >> 4 PASSED! +1073741824 >> 5 PASSED! +1073741824 >> 6 PASSED! +1073741824 >> 7 PASSED! +1073741824 >> 8 PASSED! +1073741824 >> 9 PASSED! +1073741824 >> 10 PASSED! +1073741824 >> 11 PASSED! +1073741824 >> 12 PASSED! +1073741824 >> 13 PASSED! +1073741824 >> 14 PASSED! +1073741824 >> 15 PASSED! +1073741824 >> 16 PASSED! +1073741824 >> 17 PASSED! +1073741824 >> 18 PASSED! +1073741824 >> 19 PASSED! +1073741824 >> 20 PASSED! +1073741824 >> 21 PASSED! +1073741824 >> 22 PASSED! +1073741824 >> 23 PASSED! +1073741824 >> 24 PASSED! +1073741824 >> 25 PASSED! +1073741824 >> 26 PASSED! +1073741824 >> 27 PASSED! +1073741824 >> 28 PASSED! +1073741824 >> 29 PASSED! +1073741824 >> 30 PASSED! +1073741824 >> 31 PASSED! +1073741824 >> 32 PASSED! +2147483648 >> 0 PASSED! +2147483648 >> 1 PASSED! +2147483648 >> 2 PASSED! +2147483648 >> 3 PASSED! +2147483648 >> 4 PASSED! +2147483648 >> 5 PASSED! +2147483648 >> 6 PASSED! +2147483648 >> 7 PASSED! +2147483648 >> 8 PASSED! +2147483648 >> 9 PASSED! +2147483648 >> 10 PASSED! +2147483648 >> 11 PASSED! +2147483648 >> 12 PASSED! +2147483648 >> 13 PASSED! +2147483648 >> 14 PASSED! +2147483648 >> 15 PASSED! +2147483648 >> 16 PASSED! +2147483648 >> 17 PASSED! +2147483648 >> 18 PASSED! +2147483648 >> 19 PASSED! +2147483648 >> 20 PASSED! +2147483648 >> 21 PASSED! +2147483648 >> 22 PASSED! +2147483648 >> 23 PASSED! +2147483648 >> 24 PASSED! +2147483648 >> 25 PASSED! +2147483648 >> 26 PASSED! +2147483648 >> 27 PASSED! +2147483648 >> 28 PASSED! +2147483648 >> 29 PASSED! +2147483648 >> 30 PASSED! +2147483648 >> 31 PASSED! +2147483648 >> 32 PASSED! +4294967296 >> 0 PASSED! +4294967296 >> 1 PASSED! +4294967296 >> 2 PASSED! +4294967296 >> 3 PASSED! +4294967296 >> 4 PASSED! +4294967296 >> 5 PASSED! +4294967296 >> 6 PASSED! +4294967296 >> 7 PASSED! +4294967296 >> 8 PASSED! +4294967296 >> 9 PASSED! +4294967296 >> 10 PASSED! +4294967296 >> 11 PASSED! +4294967296 >> 12 PASSED! +4294967296 >> 13 PASSED! +4294967296 >> 14 PASSED! +4294967296 >> 15 PASSED! +4294967296 >> 16 PASSED! +4294967296 >> 17 PASSED! +4294967296 >> 18 PASSED! +4294967296 >> 19 PASSED! +4294967296 >> 20 PASSED! +4294967296 >> 21 PASSED! +4294967296 >> 22 PASSED! +4294967296 >> 23 PASSED! +4294967296 >> 24 PASSED! +4294967296 >> 25 PASSED! +4294967296 >> 26 PASSED! +4294967296 >> 27 PASSED! +4294967296 >> 28 PASSED! +4294967296 >> 29 PASSED! +4294967296 >> 30 PASSED! +4294967296 >> 31 PASSED! +4294967296 >> 32 PASSED! +-1 >> 0 PASSED! +-1 >> 1 PASSED! +-1 >> 2 PASSED! +-1 >> 3 PASSED! +-1 >> 4 PASSED! +-1 >> 5 PASSED! +-1 >> 6 PASSED! +-1 >> 7 PASSED! +-1 >> 8 PASSED! +-1 >> 9 PASSED! +-1 >> 10 PASSED! +-1 >> 11 PASSED! +-1 >> 12 PASSED! +-1 >> 13 PASSED! +-1 >> 14 PASSED! +-1 >> 15 PASSED! +-1 >> 16 PASSED! +-1 >> 17 PASSED! +-1 >> 18 PASSED! +-1 >> 19 PASSED! +-1 >> 20 PASSED! +-1 >> 21 PASSED! +-1 >> 22 PASSED! +-1 >> 23 PASSED! +-1 >> 24 PASSED! +-1 >> 25 PASSED! +-1 >> 26 PASSED! +-1 >> 27 PASSED! +-1 >> 28 PASSED! +-1 >> 29 PASSED! +-1 >> 30 PASSED! +-1 >> 31 PASSED! +-1 >> 32 PASSED! +-2 >> 0 PASSED! +-2 >> 1 PASSED! +-2 >> 2 PASSED! +-2 >> 3 PASSED! +-2 >> 4 PASSED! +-2 >> 5 PASSED! +-2 >> 6 PASSED! +-2 >> 7 PASSED! +-2 >> 8 PASSED! +-2 >> 9 PASSED! +-2 >> 10 PASSED! +-2 >> 11 PASSED! +-2 >> 12 PASSED! +-2 >> 13 PASSED! +-2 >> 14 PASSED! +-2 >> 15 PASSED! +-2 >> 16 PASSED! +-2 >> 17 PASSED! +-2 >> 18 PASSED! +-2 >> 19 PASSED! +-2 >> 20 PASSED! +-2 >> 21 PASSED! +-2 >> 22 PASSED! +-2 >> 23 PASSED! +-2 >> 24 PASSED! +-2 >> 25 PASSED! +-2 >> 26 PASSED! +-2 >> 27 PASSED! +-2 >> 28 PASSED! +-2 >> 29 PASSED! +-2 >> 30 PASSED! +-2 >> 31 PASSED! +-2 >> 32 PASSED! +-4 >> 0 PASSED! +-4 >> 1 PASSED! +-4 >> 2 PASSED! +-4 >> 3 PASSED! +-4 >> 4 PASSED! +-4 >> 5 PASSED! +-4 >> 6 PASSED! +-4 >> 7 PASSED! +-4 >> 8 PASSED! +-4 >> 9 PASSED! +-4 >> 10 PASSED! +-4 >> 11 PASSED! +-4 >> 12 PASSED! +-4 >> 13 PASSED! +-4 >> 14 PASSED! +-4 >> 15 PASSED! +-4 >> 16 PASSED! +-4 >> 17 PASSED! +-4 >> 18 PASSED! +-4 >> 19 PASSED! +-4 >> 20 PASSED! +-4 >> 21 PASSED! +-4 >> 22 PASSED! +-4 >> 23 PASSED! +-4 >> 24 PASSED! +-4 >> 25 PASSED! +-4 >> 26 PASSED! +-4 >> 27 PASSED! +-4 >> 28 PASSED! +-4 >> 29 PASSED! +-4 >> 30 PASSED! +-4 >> 31 PASSED! +-4 >> 32 PASSED! +-8 >> 0 PASSED! +-8 >> 1 PASSED! +-8 >> 2 PASSED! +-8 >> 3 PASSED! +-8 >> 4 PASSED! +-8 >> 5 PASSED! +-8 >> 6 PASSED! +-8 >> 7 PASSED! +-8 >> 8 PASSED! +-8 >> 9 PASSED! +-8 >> 10 PASSED! +-8 >> 11 PASSED! +-8 >> 12 PASSED! +-8 >> 13 PASSED! +-8 >> 14 PASSED! +-8 >> 15 PASSED! +-8 >> 16 PASSED! +-8 >> 17 PASSED! +-8 >> 18 PASSED! +-8 >> 19 PASSED! +-8 >> 20 PASSED! +-8 >> 21 PASSED! +-8 >> 22 PASSED! +-8 >> 23 PASSED! +-8 >> 24 PASSED! +-8 >> 25 PASSED! +-8 >> 26 PASSED! +-8 >> 27 PASSED! +-8 >> 28 PASSED! +-8 >> 29 PASSED! +-8 >> 30 PASSED! +-8 >> 31 PASSED! +-8 >> 32 PASSED! +-16 >> 0 PASSED! +-16 >> 1 PASSED! +-16 >> 2 PASSED! +-16 >> 3 PASSED! +-16 >> 4 PASSED! +-16 >> 5 PASSED! +-16 >> 6 PASSED! +-16 >> 7 PASSED! +-16 >> 8 PASSED! +-16 >> 9 PASSED! +-16 >> 10 PASSED! +-16 >> 11 PASSED! +-16 >> 12 PASSED! +-16 >> 13 PASSED! +-16 >> 14 PASSED! +-16 >> 15 PASSED! +-16 >> 16 PASSED! +-16 >> 17 PASSED! +-16 >> 18 PASSED! +-16 >> 19 PASSED! +-16 >> 20 PASSED! +-16 >> 21 PASSED! +-16 >> 22 PASSED! +-16 >> 23 PASSED! +-16 >> 24 PASSED! +-16 >> 25 PASSED! +-16 >> 26 PASSED! +-16 >> 27 PASSED! +-16 >> 28 PASSED! +-16 >> 29 PASSED! +-16 >> 30 PASSED! +-16 >> 31 PASSED! +-16 >> 32 PASSED! +-32 >> 0 PASSED! +-32 >> 1 PASSED! +-32 >> 2 PASSED! +-32 >> 3 PASSED! +-32 >> 4 PASSED! +-32 >> 5 PASSED! +-32 >> 6 PASSED! +-32 >> 7 PASSED! +-32 >> 8 PASSED! +-32 >> 9 PASSED! +-32 >> 10 PASSED! +-32 >> 11 PASSED! +-32 >> 12 PASSED! +-32 >> 13 PASSED! +-32 >> 14 PASSED! +-32 >> 15 PASSED! +-32 >> 16 PASSED! +-32 >> 17 PASSED! +-32 >> 18 PASSED! +-32 >> 19 PASSED! +-32 >> 20 PASSED! +-32 >> 21 PASSED! +-32 >> 22 PASSED! +-32 >> 23 PASSED! +-32 >> 24 PASSED! +-32 >> 25 PASSED! +-32 >> 26 PASSED! +-32 >> 27 PASSED! +-32 >> 28 PASSED! +-32 >> 29 PASSED! +-32 >> 30 PASSED! +-32 >> 31 PASSED! +-32 >> 32 PASSED! +-64 >> 0 PASSED! +-64 >> 1 PASSED! +-64 >> 2 PASSED! +-64 >> 3 PASSED! +-64 >> 4 PASSED! +-64 >> 5 PASSED! +-64 >> 6 PASSED! +-64 >> 7 PASSED! +-64 >> 8 PASSED! +-64 >> 9 PASSED! +-64 >> 10 PASSED! +-64 >> 11 PASSED! +-64 >> 12 PASSED! +-64 >> 13 PASSED! +-64 >> 14 PASSED! +-64 >> 15 PASSED! +-64 >> 16 PASSED! +-64 >> 17 PASSED! +-64 >> 18 PASSED! +-64 >> 19 PASSED! +-64 >> 20 PASSED! +-64 >> 21 PASSED! +-64 >> 22 PASSED! +-64 >> 23 PASSED! +-64 >> 24 PASSED! +-64 >> 25 PASSED! +-64 >> 26 PASSED! +-64 >> 27 PASSED! +-64 >> 28 PASSED! +-64 >> 29 PASSED! +-64 >> 30 PASSED! +-64 >> 31 PASSED! +-64 >> 32 PASSED! +-128 >> 0 PASSED! +-128 >> 1 PASSED! +-128 >> 2 PASSED! +-128 >> 3 PASSED! +-128 >> 4 PASSED! +-128 >> 5 PASSED! +-128 >> 6 PASSED! +-128 >> 7 PASSED! +-128 >> 8 PASSED! +-128 >> 9 PASSED! +-128 >> 10 PASSED! +-128 >> 11 PASSED! +-128 >> 12 PASSED! +-128 >> 13 PASSED! +-128 >> 14 PASSED! +-128 >> 15 PASSED! +-128 >> 16 PASSED! +-128 >> 17 PASSED! +-128 >> 18 PASSED! +-128 >> 19 PASSED! +-128 >> 20 PASSED! +-128 >> 21 PASSED! +-128 >> 22 PASSED! +-128 >> 23 PASSED! +-128 >> 24 PASSED! +-128 >> 25 PASSED! +-128 >> 26 PASSED! +-128 >> 27 PASSED! +-128 >> 28 PASSED! +-128 >> 29 PASSED! +-128 >> 30 PASSED! +-128 >> 31 PASSED! +-128 >> 32 PASSED! +-256 >> 0 PASSED! +-256 >> 1 PASSED! +-256 >> 2 PASSED! +-256 >> 3 PASSED! +-256 >> 4 PASSED! +-256 >> 5 PASSED! +-256 >> 6 PASSED! +-256 >> 7 PASSED! +-256 >> 8 PASSED! +-256 >> 9 PASSED! +-256 >> 10 PASSED! +-256 >> 11 PASSED! +-256 >> 12 PASSED! +-256 >> 13 PASSED! +-256 >> 14 PASSED! +-256 >> 15 PASSED! +-256 >> 16 PASSED! +-256 >> 17 PASSED! +-256 >> 18 PASSED! +-256 >> 19 PASSED! +-256 >> 20 PASSED! +-256 >> 21 PASSED! +-256 >> 22 PASSED! +-256 >> 23 PASSED! +-256 >> 24 PASSED! +-256 >> 25 PASSED! +-256 >> 26 PASSED! +-256 >> 27 PASSED! +-256 >> 28 PASSED! +-256 >> 29 PASSED! +-256 >> 30 PASSED! +-256 >> 31 PASSED! +-256 >> 32 PASSED! +-512 >> 0 PASSED! +-512 >> 1 PASSED! +-512 >> 2 PASSED! +-512 >> 3 PASSED! +-512 >> 4 PASSED! +-512 >> 5 PASSED! +-512 >> 6 PASSED! +-512 >> 7 PASSED! +-512 >> 8 PASSED! +-512 >> 9 PASSED! +-512 >> 10 PASSED! +-512 >> 11 PASSED! +-512 >> 12 PASSED! +-512 >> 13 PASSED! +-512 >> 14 PASSED! +-512 >> 15 PASSED! +-512 >> 16 PASSED! +-512 >> 17 PASSED! +-512 >> 18 PASSED! +-512 >> 19 PASSED! +-512 >> 20 PASSED! +-512 >> 21 PASSED! +-512 >> 22 PASSED! +-512 >> 23 PASSED! +-512 >> 24 PASSED! +-512 >> 25 PASSED! +-512 >> 26 PASSED! +-512 >> 27 PASSED! +-512 >> 28 PASSED! +-512 >> 29 PASSED! +-512 >> 30 PASSED! +-512 >> 31 PASSED! +-512 >> 32 PASSED! +-1024 >> 0 PASSED! +-1024 >> 1 PASSED! +-1024 >> 2 PASSED! +-1024 >> 3 PASSED! +-1024 >> 4 PASSED! +-1024 >> 5 PASSED! +-1024 >> 6 PASSED! +-1024 >> 7 PASSED! +-1024 >> 8 PASSED! +-1024 >> 9 PASSED! +-1024 >> 10 PASSED! +-1024 >> 11 PASSED! +-1024 >> 12 PASSED! +-1024 >> 13 PASSED! +-1024 >> 14 PASSED! +-1024 >> 15 PASSED! +-1024 >> 16 PASSED! +-1024 >> 17 PASSED! +-1024 >> 18 PASSED! +-1024 >> 19 PASSED! +-1024 >> 20 PASSED! +-1024 >> 21 PASSED! +-1024 >> 22 PASSED! +-1024 >> 23 PASSED! +-1024 >> 24 PASSED! +-1024 >> 25 PASSED! +-1024 >> 26 PASSED! +-1024 >> 27 PASSED! +-1024 >> 28 PASSED! +-1024 >> 29 PASSED! +-1024 >> 30 PASSED! +-1024 >> 31 PASSED! +-1024 >> 32 PASSED! +-2048 >> 0 PASSED! +-2048 >> 1 PASSED! +-2048 >> 2 PASSED! +-2048 >> 3 PASSED! +-2048 >> 4 PASSED! +-2048 >> 5 PASSED! +-2048 >> 6 PASSED! +-2048 >> 7 PASSED! +-2048 >> 8 PASSED! +-2048 >> 9 PASSED! +-2048 >> 10 PASSED! +-2048 >> 11 PASSED! +-2048 >> 12 PASSED! +-2048 >> 13 PASSED! +-2048 >> 14 PASSED! +-2048 >> 15 PASSED! +-2048 >> 16 PASSED! +-2048 >> 17 PASSED! +-2048 >> 18 PASSED! +-2048 >> 19 PASSED! +-2048 >> 20 PASSED! +-2048 >> 21 PASSED! +-2048 >> 22 PASSED! +-2048 >> 23 PASSED! +-2048 >> 24 PASSED! +-2048 >> 25 PASSED! +-2048 >> 26 PASSED! +-2048 >> 27 PASSED! +-2048 >> 28 PASSED! +-2048 >> 29 PASSED! +-2048 >> 30 PASSED! +-2048 >> 31 PASSED! +-2048 >> 32 PASSED! +-4096 >> 0 PASSED! +-4096 >> 1 PASSED! +-4096 >> 2 PASSED! +-4096 >> 3 PASSED! +-4096 >> 4 PASSED! +-4096 >> 5 PASSED! +-4096 >> 6 PASSED! +-4096 >> 7 PASSED! +-4096 >> 8 PASSED! +-4096 >> 9 PASSED! +-4096 >> 10 PASSED! +-4096 >> 11 PASSED! +-4096 >> 12 PASSED! +-4096 >> 13 PASSED! +-4096 >> 14 PASSED! +-4096 >> 15 PASSED! +-4096 >> 16 PASSED! +-4096 >> 17 PASSED! +-4096 >> 18 PASSED! +-4096 >> 19 PASSED! +-4096 >> 20 PASSED! +-4096 >> 21 PASSED! +-4096 >> 22 PASSED! +-4096 >> 23 PASSED! +-4096 >> 24 PASSED! +-4096 >> 25 PASSED! +-4096 >> 26 PASSED! +-4096 >> 27 PASSED! +-4096 >> 28 PASSED! +-4096 >> 29 PASSED! +-4096 >> 30 PASSED! +-4096 >> 31 PASSED! +-4096 >> 32 PASSED! +-8192 >> 0 PASSED! +-8192 >> 1 PASSED! +-8192 >> 2 PASSED! +-8192 >> 3 PASSED! +-8192 >> 4 PASSED! +-8192 >> 5 PASSED! +-8192 >> 6 PASSED! +-8192 >> 7 PASSED! +-8192 >> 8 PASSED! +-8192 >> 9 PASSED! +-8192 >> 10 PASSED! +-8192 >> 11 PASSED! +-8192 >> 12 PASSED! +-8192 >> 13 PASSED! +-8192 >> 14 PASSED! +-8192 >> 15 PASSED! +-8192 >> 16 PASSED! +-8192 >> 17 PASSED! +-8192 >> 18 PASSED! +-8192 >> 19 PASSED! +-8192 >> 20 PASSED! +-8192 >> 21 PASSED! +-8192 >> 22 PASSED! +-8192 >> 23 PASSED! +-8192 >> 24 PASSED! +-8192 >> 25 PASSED! +-8192 >> 26 PASSED! +-8192 >> 27 PASSED! +-8192 >> 28 PASSED! +-8192 >> 29 PASSED! +-8192 >> 30 PASSED! +-8192 >> 31 PASSED! +-8192 >> 32 PASSED! +-16384 >> 0 PASSED! +-16384 >> 1 PASSED! +-16384 >> 2 PASSED! +-16384 >> 3 PASSED! +-16384 >> 4 PASSED! +-16384 >> 5 PASSED! +-16384 >> 6 PASSED! +-16384 >> 7 PASSED! +-16384 >> 8 PASSED! +-16384 >> 9 PASSED! +-16384 >> 10 PASSED! +-16384 >> 11 PASSED! +-16384 >> 12 PASSED! +-16384 >> 13 PASSED! +-16384 >> 14 PASSED! +-16384 >> 15 PASSED! +-16384 >> 16 PASSED! +-16384 >> 17 PASSED! +-16384 >> 18 PASSED! +-16384 >> 19 PASSED! +-16384 >> 20 PASSED! +-16384 >> 21 PASSED! +-16384 >> 22 PASSED! +-16384 >> 23 PASSED! +-16384 >> 24 PASSED! +-16384 >> 25 PASSED! +-16384 >> 26 PASSED! +-16384 >> 27 PASSED! +-16384 >> 28 PASSED! +-16384 >> 29 PASSED! +-16384 >> 30 PASSED! +-16384 >> 31 PASSED! +-16384 >> 32 PASSED! +-32768 >> 0 PASSED! +-32768 >> 1 PASSED! +-32768 >> 2 PASSED! +-32768 >> 3 PASSED! +-32768 >> 4 PASSED! +-32768 >> 5 PASSED! +-32768 >> 6 PASSED! +-32768 >> 7 PASSED! +-32768 >> 8 PASSED! +-32768 >> 9 PASSED! +-32768 >> 10 PASSED! +-32768 >> 11 PASSED! +-32768 >> 12 PASSED! +-32768 >> 13 PASSED! +-32768 >> 14 PASSED! +-32768 >> 15 PASSED! +-32768 >> 16 PASSED! +-32768 >> 17 PASSED! +-32768 >> 18 PASSED! +-32768 >> 19 PASSED! +-32768 >> 20 PASSED! +-32768 >> 21 PASSED! +-32768 >> 22 PASSED! +-32768 >> 23 PASSED! +-32768 >> 24 PASSED! +-32768 >> 25 PASSED! +-32768 >> 26 PASSED! +-32768 >> 27 PASSED! +-32768 >> 28 PASSED! +-32768 >> 29 PASSED! +-32768 >> 30 PASSED! +-32768 >> 31 PASSED! +-32768 >> 32 PASSED! +-65536 >> 0 PASSED! +-65536 >> 1 PASSED! +-65536 >> 2 PASSED! +-65536 >> 3 PASSED! +-65536 >> 4 PASSED! +-65536 >> 5 PASSED! +-65536 >> 6 PASSED! +-65536 >> 7 PASSED! +-65536 >> 8 PASSED! +-65536 >> 9 PASSED! +-65536 >> 10 PASSED! +-65536 >> 11 PASSED! +-65536 >> 12 PASSED! +-65536 >> 13 PASSED! +-65536 >> 14 PASSED! +-65536 >> 15 PASSED! +-65536 >> 16 PASSED! +-65536 >> 17 PASSED! +-65536 >> 18 PASSED! +-65536 >> 19 PASSED! +-65536 >> 20 PASSED! +-65536 >> 21 PASSED! +-65536 >> 22 PASSED! +-65536 >> 23 PASSED! +-65536 >> 24 PASSED! +-65536 >> 25 PASSED! +-65536 >> 26 PASSED! +-65536 >> 27 PASSED! +-65536 >> 28 PASSED! +-65536 >> 29 PASSED! +-65536 >> 30 PASSED! +-65536 >> 31 PASSED! +-65536 >> 32 PASSED! +-131072 >> 0 PASSED! +-131072 >> 1 PASSED! +-131072 >> 2 PASSED! +-131072 >> 3 PASSED! +-131072 >> 4 PASSED! +-131072 >> 5 PASSED! +-131072 >> 6 PASSED! +-131072 >> 7 PASSED! +-131072 >> 8 PASSED! +-131072 >> 9 PASSED! +-131072 >> 10 PASSED! +-131072 >> 11 PASSED! +-131072 >> 12 PASSED! +-131072 >> 13 PASSED! +-131072 >> 14 PASSED! +-131072 >> 15 PASSED! +-131072 >> 16 PASSED! +-131072 >> 17 PASSED! +-131072 >> 18 PASSED! +-131072 >> 19 PASSED! +-131072 >> 20 PASSED! +-131072 >> 21 PASSED! +-131072 >> 22 PASSED! +-131072 >> 23 PASSED! +-131072 >> 24 PASSED! +-131072 >> 25 PASSED! +-131072 >> 26 PASSED! +-131072 >> 27 PASSED! +-131072 >> 28 PASSED! +-131072 >> 29 PASSED! +-131072 >> 30 PASSED! +-131072 >> 31 PASSED! +-131072 >> 32 PASSED! +-262144 >> 0 PASSED! +-262144 >> 1 PASSED! +-262144 >> 2 PASSED! +-262144 >> 3 PASSED! +-262144 >> 4 PASSED! +-262144 >> 5 PASSED! +-262144 >> 6 PASSED! +-262144 >> 7 PASSED! +-262144 >> 8 PASSED! +-262144 >> 9 PASSED! +-262144 >> 10 PASSED! +-262144 >> 11 PASSED! +-262144 >> 12 PASSED! +-262144 >> 13 PASSED! +-262144 >> 14 PASSED! +-262144 >> 15 PASSED! +-262144 >> 16 PASSED! +-262144 >> 17 PASSED! +-262144 >> 18 PASSED! +-262144 >> 19 PASSED! +-262144 >> 20 PASSED! +-262144 >> 21 PASSED! +-262144 >> 22 PASSED! +-262144 >> 23 PASSED! +-262144 >> 24 PASSED! +-262144 >> 25 PASSED! +-262144 >> 26 PASSED! +-262144 >> 27 PASSED! +-262144 >> 28 PASSED! +-262144 >> 29 PASSED! +-262144 >> 30 PASSED! +-262144 >> 31 PASSED! +-262144 >> 32 PASSED! +-524288 >> 0 PASSED! +-524288 >> 1 PASSED! +-524288 >> 2 PASSED! +-524288 >> 3 PASSED! +-524288 >> 4 PASSED! +-524288 >> 5 PASSED! +-524288 >> 6 PASSED! +-524288 >> 7 PASSED! +-524288 >> 8 PASSED! +-524288 >> 9 PASSED! +-524288 >> 10 PASSED! +-524288 >> 11 PASSED! +-524288 >> 12 PASSED! +-524288 >> 13 PASSED! +-524288 >> 14 PASSED! +-524288 >> 15 PASSED! +-524288 >> 16 PASSED! +-524288 >> 17 PASSED! +-524288 >> 18 PASSED! +-524288 >> 19 PASSED! +-524288 >> 20 PASSED! +-524288 >> 21 PASSED! +-524288 >> 22 PASSED! +-524288 >> 23 PASSED! +-524288 >> 24 PASSED! +-524288 >> 25 PASSED! +-524288 >> 26 PASSED! +-524288 >> 27 PASSED! +-524288 >> 28 PASSED! +-524288 >> 29 PASSED! +-524288 >> 30 PASSED! +-524288 >> 31 PASSED! +-524288 >> 32 PASSED! +-1048576 >> 0 PASSED! +-1048576 >> 1 PASSED! +-1048576 >> 2 PASSED! +-1048576 >> 3 PASSED! +-1048576 >> 4 PASSED! +-1048576 >> 5 PASSED! +-1048576 >> 6 PASSED! +-1048576 >> 7 PASSED! +-1048576 >> 8 PASSED! +-1048576 >> 9 PASSED! +-1048576 >> 10 PASSED! +-1048576 >> 11 PASSED! +-1048576 >> 12 PASSED! +-1048576 >> 13 PASSED! +-1048576 >> 14 PASSED! +-1048576 >> 15 PASSED! +-1048576 >> 16 PASSED! +-1048576 >> 17 PASSED! +-1048576 >> 18 PASSED! +-1048576 >> 19 PASSED! +-1048576 >> 20 PASSED! +-1048576 >> 21 PASSED! +-1048576 >> 22 PASSED! +-1048576 >> 23 PASSED! +-1048576 >> 24 PASSED! +-1048576 >> 25 PASSED! +-1048576 >> 26 PASSED! +-1048576 >> 27 PASSED! +-1048576 >> 28 PASSED! +-1048576 >> 29 PASSED! +-1048576 >> 30 PASSED! +-1048576 >> 31 PASSED! +-1048576 >> 32 PASSED! +-2097152 >> 0 PASSED! +-2097152 >> 1 PASSED! +-2097152 >> 2 PASSED! +-2097152 >> 3 PASSED! +-2097152 >> 4 PASSED! +-2097152 >> 5 PASSED! +-2097152 >> 6 PASSED! +-2097152 >> 7 PASSED! +-2097152 >> 8 PASSED! +-2097152 >> 9 PASSED! +-2097152 >> 10 PASSED! +-2097152 >> 11 PASSED! +-2097152 >> 12 PASSED! +-2097152 >> 13 PASSED! +-2097152 >> 14 PASSED! +-2097152 >> 15 PASSED! +-2097152 >> 16 PASSED! +-2097152 >> 17 PASSED! +-2097152 >> 18 PASSED! +-2097152 >> 19 PASSED! +-2097152 >> 20 PASSED! +-2097152 >> 21 PASSED! +-2097152 >> 22 PASSED! +-2097152 >> 23 PASSED! +-2097152 >> 24 PASSED! +-2097152 >> 25 PASSED! +-2097152 >> 26 PASSED! +-2097152 >> 27 PASSED! +-2097152 >> 28 PASSED! +-2097152 >> 29 PASSED! +-2097152 >> 30 PASSED! +-2097152 >> 31 PASSED! +-2097152 >> 32 PASSED! +-4194304 >> 0 PASSED! +-4194304 >> 1 PASSED! +-4194304 >> 2 PASSED! +-4194304 >> 3 PASSED! +-4194304 >> 4 PASSED! +-4194304 >> 5 PASSED! +-4194304 >> 6 PASSED! +-4194304 >> 7 PASSED! +-4194304 >> 8 PASSED! +-4194304 >> 9 PASSED! +-4194304 >> 10 PASSED! +-4194304 >> 11 PASSED! +-4194304 >> 12 PASSED! +-4194304 >> 13 PASSED! +-4194304 >> 14 PASSED! +-4194304 >> 15 PASSED! +-4194304 >> 16 PASSED! +-4194304 >> 17 PASSED! +-4194304 >> 18 PASSED! +-4194304 >> 19 PASSED! +-4194304 >> 20 PASSED! +-4194304 >> 21 PASSED! +-4194304 >> 22 PASSED! +-4194304 >> 23 PASSED! +-4194304 >> 24 PASSED! +-4194304 >> 25 PASSED! +-4194304 >> 26 PASSED! +-4194304 >> 27 PASSED! +-4194304 >> 28 PASSED! +-4194304 >> 29 PASSED! +-4194304 >> 30 PASSED! +-4194304 >> 31 PASSED! +-4194304 >> 32 PASSED! +-8388608 >> 0 PASSED! +-8388608 >> 1 PASSED! +-8388608 >> 2 PASSED! +-8388608 >> 3 PASSED! +-8388608 >> 4 PASSED! +-8388608 >> 5 PASSED! +-8388608 >> 6 PASSED! +-8388608 >> 7 PASSED! +-8388608 >> 8 PASSED! +-8388608 >> 9 PASSED! +-8388608 >> 10 PASSED! +-8388608 >> 11 PASSED! +-8388608 >> 12 PASSED! +-8388608 >> 13 PASSED! +-8388608 >> 14 PASSED! +-8388608 >> 15 PASSED! +-8388608 >> 16 PASSED! +-8388608 >> 17 PASSED! +-8388608 >> 18 PASSED! +-8388608 >> 19 PASSED! +-8388608 >> 20 PASSED! +-8388608 >> 21 PASSED! +-8388608 >> 22 PASSED! +-8388608 >> 23 PASSED! +-8388608 >> 24 PASSED! +-8388608 >> 25 PASSED! +-8388608 >> 26 PASSED! +-8388608 >> 27 PASSED! +-8388608 >> 28 PASSED! +-8388608 >> 29 PASSED! +-8388608 >> 30 PASSED! +-8388608 >> 31 PASSED! +-8388608 >> 32 PASSED! +-16777216 >> 0 PASSED! +-16777216 >> 1 PASSED! +-16777216 >> 2 PASSED! +-16777216 >> 3 PASSED! +-16777216 >> 4 PASSED! +-16777216 >> 5 PASSED! +-16777216 >> 6 PASSED! +-16777216 >> 7 PASSED! +-16777216 >> 8 PASSED! +-16777216 >> 9 PASSED! +-16777216 >> 10 PASSED! +-16777216 >> 11 PASSED! +-16777216 >> 12 PASSED! +-16777216 >> 13 PASSED! +-16777216 >> 14 PASSED! +-16777216 >> 15 PASSED! +-16777216 >> 16 PASSED! +-16777216 >> 17 PASSED! +-16777216 >> 18 PASSED! +-16777216 >> 19 PASSED! +-16777216 >> 20 PASSED! +-16777216 >> 21 PASSED! +-16777216 >> 22 PASSED! +-16777216 >> 23 PASSED! +-16777216 >> 24 PASSED! +-16777216 >> 25 PASSED! +-16777216 >> 26 PASSED! +-16777216 >> 27 PASSED! +-16777216 >> 28 PASSED! +-16777216 >> 29 PASSED! +-16777216 >> 30 PASSED! +-16777216 >> 31 PASSED! +-16777216 >> 32 PASSED! +-33554432 >> 0 PASSED! +-33554432 >> 1 PASSED! +-33554432 >> 2 PASSED! +-33554432 >> 3 PASSED! +-33554432 >> 4 PASSED! +-33554432 >> 5 PASSED! +-33554432 >> 6 PASSED! +-33554432 >> 7 PASSED! +-33554432 >> 8 PASSED! +-33554432 >> 9 PASSED! +-33554432 >> 10 PASSED! +-33554432 >> 11 PASSED! +-33554432 >> 12 PASSED! +-33554432 >> 13 PASSED! +-33554432 >> 14 PASSED! +-33554432 >> 15 PASSED! +-33554432 >> 16 PASSED! +-33554432 >> 17 PASSED! +-33554432 >> 18 PASSED! +-33554432 >> 19 PASSED! +-33554432 >> 20 PASSED! +-33554432 >> 21 PASSED! +-33554432 >> 22 PASSED! +-33554432 >> 23 PASSED! +-33554432 >> 24 PASSED! +-33554432 >> 25 PASSED! +-33554432 >> 26 PASSED! +-33554432 >> 27 PASSED! +-33554432 >> 28 PASSED! +-33554432 >> 29 PASSED! +-33554432 >> 30 PASSED! +-33554432 >> 31 PASSED! +-33554432 >> 32 PASSED! +-67108864 >> 0 PASSED! +-67108864 >> 1 PASSED! +-67108864 >> 2 PASSED! +-67108864 >> 3 PASSED! +-67108864 >> 4 PASSED! +-67108864 >> 5 PASSED! +-67108864 >> 6 PASSED! +-67108864 >> 7 PASSED! +-67108864 >> 8 PASSED! +-67108864 >> 9 PASSED! +-67108864 >> 10 PASSED! +-67108864 >> 11 PASSED! +-67108864 >> 12 PASSED! +-67108864 >> 13 PASSED! +-67108864 >> 14 PASSED! +-67108864 >> 15 PASSED! +-67108864 >> 16 PASSED! +-67108864 >> 17 PASSED! +-67108864 >> 18 PASSED! +-67108864 >> 19 PASSED! +-67108864 >> 20 PASSED! +-67108864 >> 21 PASSED! +-67108864 >> 22 PASSED! +-67108864 >> 23 PASSED! +-67108864 >> 24 PASSED! +-67108864 >> 25 PASSED! +-67108864 >> 26 PASSED! +-67108864 >> 27 PASSED! +-67108864 >> 28 PASSED! +-67108864 >> 29 PASSED! +-67108864 >> 30 PASSED! +-67108864 >> 31 PASSED! +-67108864 >> 32 PASSED! +-134217728 >> 0 PASSED! +-134217728 >> 1 PASSED! +-134217728 >> 2 PASSED! +-134217728 >> 3 PASSED! +-134217728 >> 4 PASSED! +-134217728 >> 5 PASSED! +-134217728 >> 6 PASSED! +-134217728 >> 7 PASSED! +-134217728 >> 8 PASSED! +-134217728 >> 9 PASSED! +-134217728 >> 10 PASSED! +-134217728 >> 11 PASSED! +-134217728 >> 12 PASSED! +-134217728 >> 13 PASSED! +-134217728 >> 14 PASSED! +-134217728 >> 15 PASSED! +-134217728 >> 16 PASSED! +-134217728 >> 17 PASSED! +-134217728 >> 18 PASSED! +-134217728 >> 19 PASSED! +-134217728 >> 20 PASSED! +-134217728 >> 21 PASSED! +-134217728 >> 22 PASSED! +-134217728 >> 23 PASSED! +-134217728 >> 24 PASSED! +-134217728 >> 25 PASSED! +-134217728 >> 26 PASSED! +-134217728 >> 27 PASSED! +-134217728 >> 28 PASSED! +-134217728 >> 29 PASSED! +-134217728 >> 30 PASSED! +-134217728 >> 31 PASSED! +-134217728 >> 32 PASSED! +-268435456 >> 0 PASSED! +-268435456 >> 1 PASSED! +-268435456 >> 2 PASSED! +-268435456 >> 3 PASSED! +-268435456 >> 4 PASSED! +-268435456 >> 5 PASSED! +-268435456 >> 6 PASSED! +-268435456 >> 7 PASSED! +-268435456 >> 8 PASSED! +-268435456 >> 9 PASSED! +-268435456 >> 10 PASSED! +-268435456 >> 11 PASSED! +-268435456 >> 12 PASSED! +-268435456 >> 13 PASSED! +-268435456 >> 14 PASSED! +-268435456 >> 15 PASSED! +-268435456 >> 16 PASSED! +-268435456 >> 17 PASSED! +-268435456 >> 18 PASSED! +-268435456 >> 19 PASSED! +-268435456 >> 20 PASSED! +-268435456 >> 21 PASSED! +-268435456 >> 22 PASSED! +-268435456 >> 23 PASSED! +-268435456 >> 24 PASSED! +-268435456 >> 25 PASSED! +-268435456 >> 26 PASSED! +-268435456 >> 27 PASSED! +-268435456 >> 28 PASSED! +-268435456 >> 29 PASSED! +-268435456 >> 30 PASSED! +-268435456 >> 31 PASSED! +-268435456 >> 32 PASSED! +-536870912 >> 0 PASSED! +-536870912 >> 1 PASSED! +-536870912 >> 2 PASSED! +-536870912 >> 3 PASSED! +-536870912 >> 4 PASSED! +-536870912 >> 5 PASSED! +-536870912 >> 6 PASSED! +-536870912 >> 7 PASSED! +-536870912 >> 8 PASSED! +-536870912 >> 9 PASSED! +-536870912 >> 10 PASSED! +-536870912 >> 11 PASSED! +-536870912 >> 12 PASSED! +-536870912 >> 13 PASSED! +-536870912 >> 14 PASSED! +-536870912 >> 15 PASSED! +-536870912 >> 16 PASSED! +-536870912 >> 17 PASSED! +-536870912 >> 18 PASSED! +-536870912 >> 19 PASSED! +-536870912 >> 20 PASSED! +-536870912 >> 21 PASSED! +-536870912 >> 22 PASSED! +-536870912 >> 23 PASSED! +-536870912 >> 24 PASSED! +-536870912 >> 25 PASSED! +-536870912 >> 26 PASSED! +-536870912 >> 27 PASSED! +-536870912 >> 28 PASSED! +-536870912 >> 29 PASSED! +-536870912 >> 30 PASSED! +-536870912 >> 31 PASSED! +-536870912 >> 32 PASSED! +-1073741824 >> 0 PASSED! +-1073741824 >> 1 PASSED! +-1073741824 >> 2 PASSED! +-1073741824 >> 3 PASSED! +-1073741824 >> 4 PASSED! +-1073741824 >> 5 PASSED! +-1073741824 >> 6 PASSED! +-1073741824 >> 7 PASSED! +-1073741824 >> 8 PASSED! +-1073741824 >> 9 PASSED! +-1073741824 >> 10 PASSED! +-1073741824 >> 11 PASSED! +-1073741824 >> 12 PASSED! +-1073741824 >> 13 PASSED! +-1073741824 >> 14 PASSED! +-1073741824 >> 15 PASSED! +-1073741824 >> 16 PASSED! +-1073741824 >> 17 PASSED! +-1073741824 >> 18 PASSED! +-1073741824 >> 19 PASSED! +-1073741824 >> 20 PASSED! +-1073741824 >> 21 PASSED! +-1073741824 >> 22 PASSED! +-1073741824 >> 23 PASSED! +-1073741824 >> 24 PASSED! +-1073741824 >> 25 PASSED! +-1073741824 >> 26 PASSED! +-1073741824 >> 27 PASSED! +-1073741824 >> 28 PASSED! +-1073741824 >> 29 PASSED! +-1073741824 >> 30 PASSED! +-1073741824 >> 31 PASSED! +-1073741824 >> 32 PASSED! +-2147483648 >> 0 PASSED! +-2147483648 >> 1 PASSED! +-2147483648 >> 2 PASSED! +-2147483648 >> 3 PASSED! +-2147483648 >> 4 PASSED! +-2147483648 >> 5 PASSED! +-2147483648 >> 6 PASSED! +-2147483648 >> 7 PASSED! +-2147483648 >> 8 PASSED! +-2147483648 >> 9 PASSED! +-2147483648 >> 10 PASSED! +-2147483648 >> 11 PASSED! +-2147483648 >> 12 PASSED! +-2147483648 >> 13 PASSED! +-2147483648 >> 14 PASSED! +-2147483648 >> 15 PASSED! +-2147483648 >> 16 PASSED! +-2147483648 >> 17 PASSED! +-2147483648 >> 18 PASSED! +-2147483648 >> 19 PASSED! +-2147483648 >> 20 PASSED! +-2147483648 >> 21 PASSED! +-2147483648 >> 22 PASSED! +-2147483648 >> 23 PASSED! +-2147483648 >> 24 PASSED! +-2147483648 >> 25 PASSED! +-2147483648 >> 26 PASSED! +-2147483648 >> 27 PASSED! +-2147483648 >> 28 PASSED! +-2147483648 >> 29 PASSED! +-2147483648 >> 30 PASSED! +-2147483648 >> 31 PASSED! +-2147483648 >> 32 PASSED! +-4294967296 >> 0 PASSED! +-4294967296 >> 1 PASSED! +-4294967296 >> 2 PASSED! +-4294967296 >> 3 PASSED! +-4294967296 >> 4 PASSED! +-4294967296 >> 5 PASSED! +-4294967296 >> 6 PASSED! +-4294967296 >> 7 PASSED! +-4294967296 >> 8 PASSED! +-4294967296 >> 9 PASSED! +-4294967296 >> 10 PASSED! +-4294967296 >> 11 PASSED! +-4294967296 >> 12 PASSED! +-4294967296 >> 13 PASSED! +-4294967296 >> 14 PASSED! +-4294967296 >> 15 PASSED! +-4294967296 >> 16 PASSED! +-4294967296 >> 17 PASSED! +-4294967296 >> 18 PASSED! +-4294967296 >> 19 PASSED! +-4294967296 >> 20 PASSED! +-4294967296 >> 21 PASSED! +-4294967296 >> 22 PASSED! +-4294967296 >> 23 PASSED! +-4294967296 >> 24 PASSED! +-4294967296 >> 25 PASSED! +-4294967296 >> 26 PASSED! +-4294967296 >> 27 PASSED! +-4294967296 >> 28 PASSED! +-4294967296 >> 29 PASSED! +-4294967296 >> 30 PASSED! +-4294967296 >> 31 PASSED! +-4294967296 >> 32 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..024bccef006335ea570cd39f0e263da8a76aac63 GIT binary patch literal 3410 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_2/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/Test.as new file mode 100644 index 000000000..2b5cd99b8 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/Test.as @@ -0,0 +1,174 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_7_3"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + var addexp = 0; + var power = 0; + + for ( power = 0; power <= 32; power++ ) { + shiftexp = Math.pow( 2, power ); + + for ( addexp = 0; addexp <= 32; addexp++ ) { + array[item++] = Assert.expectEq( + shiftexp + " >>> " + addexp, + UnsignedRightShift( shiftexp, addexp ), + shiftexp >>> addexp ); + } + } + + return ( array ); +} + +function ToInteger( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( n != n ) { + return 0; + } + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) { + return n; + } + return ( sign * Math.floor(Math.abs(n)) ); +} +function ToInt32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = (sign * Math.floor( Math.abs(n) )) % Math.pow(2,32); + n = ( n >= Math.pow(2,31) ) ? n - Math.pow(2,32) : n; + + return ( n ); +} +function ToUint32( n ) { + n = Number( n ); + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + n = sign * Math.floor( Math.abs(n) ) + + n = n % Math.pow(2,32); + + if ( n < 0 ){ + n += Math.pow(2,32); + } + + return ( n ); +} +function ToUint16( n ) { + var sign = ( n < 0 ) ? -1 : 1; + + if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) { + return 0; + } + + n = ( sign * Math.floor( Math.abs(n) ) ) % Math.pow(2,16); + + if (n <0) { + n += Math.pow(2,16); + } + + return ( n ); +} +function Mask( b, n ) { + b = ToUint32BitString( b ); + b = b.substring( b.length - n ); + b = ToUint32Decimal( b ); + return ( b ); +} +function ToUint32BitString( n ) { + var b = ""; + for ( p = 31; p >=0; p-- ) { + if ( n >= Math.pow(2,p) ) { + b += "1"; + n -= Math.pow(2,p); + } else { + b += "0"; + } + } + return b; +} +function ToInt32BitString( n ) { + var b = ""; + var sign = ( n < 0 ) ? -1 : 1; + + b += ( sign == 1 ) ? "0" : "1"; + + for ( p = 30; p >=0; p-- ) { + if ( (sign == 1 ) ? sign * n >= Math.pow(2,p) : sign * n > Math.pow(2,p) ) { + b += ( sign == 1 ) ? "1" : "0"; + n -= sign * Math.pow( 2, p ); + } else { + b += ( sign == 1 ) ? "0" : "1"; + } + } + + return b; +} +function ToInt32Decimal( bin ) { + var r = 0; + var sign; + + if ( Number(bin.charAt(0)) == 0 ) { + sign = 1; + r = 0; + } else { + sign = -1; + r = -(Math.pow(2,31)); + } + + for ( var j = 0; j < 31; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + } + + return r; +} +function ToUint32Decimal( bin ) { + var r:Number = 0; + + + for ( l = bin.length; l < 32; l++ ) { + bin = "0" + bin; + } + + for ( j = 0; j < 32; j++ ) { + r += Math.pow( 2, j ) * Number(bin.charAt(31-j)); + + } + + return r; +} +function RShift( s, a ) { + s = ToUint32BitString( s ); + for ( z = 0; z < a; z++ ) { + s = "0" + s; + } + s = s.substring( 0, s.length - a ); + + return ToUint32Decimal(s); +} +function UnsignedRightShift( s, a ) { + s = ToUint32( s ); + a = ToUint32( a ); + a = Mask( a, 5 ); + return ( RShift( s, a ) ); +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/output.txt new file mode 100644 index 000000000..d67b7613b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/output.txt @@ -0,0 +1,1089 @@ +1 >>> 0 PASSED! +1 >>> 1 PASSED! +1 >>> 2 PASSED! +1 >>> 3 PASSED! +1 >>> 4 PASSED! +1 >>> 5 PASSED! +1 >>> 6 PASSED! +1 >>> 7 PASSED! +1 >>> 8 PASSED! +1 >>> 9 PASSED! +1 >>> 10 PASSED! +1 >>> 11 PASSED! +1 >>> 12 PASSED! +1 >>> 13 PASSED! +1 >>> 14 PASSED! +1 >>> 15 PASSED! +1 >>> 16 PASSED! +1 >>> 17 PASSED! +1 >>> 18 PASSED! +1 >>> 19 PASSED! +1 >>> 20 PASSED! +1 >>> 21 PASSED! +1 >>> 22 PASSED! +1 >>> 23 PASSED! +1 >>> 24 PASSED! +1 >>> 25 PASSED! +1 >>> 26 PASSED! +1 >>> 27 PASSED! +1 >>> 28 PASSED! +1 >>> 29 PASSED! +1 >>> 30 PASSED! +1 >>> 31 PASSED! +1 >>> 32 PASSED! +2 >>> 0 PASSED! +2 >>> 1 PASSED! +2 >>> 2 PASSED! +2 >>> 3 PASSED! +2 >>> 4 PASSED! +2 >>> 5 PASSED! +2 >>> 6 PASSED! +2 >>> 7 PASSED! +2 >>> 8 PASSED! +2 >>> 9 PASSED! +2 >>> 10 PASSED! +2 >>> 11 PASSED! +2 >>> 12 PASSED! +2 >>> 13 PASSED! +2 >>> 14 PASSED! +2 >>> 15 PASSED! +2 >>> 16 PASSED! +2 >>> 17 PASSED! +2 >>> 18 PASSED! +2 >>> 19 PASSED! +2 >>> 20 PASSED! +2 >>> 21 PASSED! +2 >>> 22 PASSED! +2 >>> 23 PASSED! +2 >>> 24 PASSED! +2 >>> 25 PASSED! +2 >>> 26 PASSED! +2 >>> 27 PASSED! +2 >>> 28 PASSED! +2 >>> 29 PASSED! +2 >>> 30 PASSED! +2 >>> 31 PASSED! +2 >>> 32 PASSED! +4 >>> 0 PASSED! +4 >>> 1 PASSED! +4 >>> 2 PASSED! +4 >>> 3 PASSED! +4 >>> 4 PASSED! +4 >>> 5 PASSED! +4 >>> 6 PASSED! +4 >>> 7 PASSED! +4 >>> 8 PASSED! +4 >>> 9 PASSED! +4 >>> 10 PASSED! +4 >>> 11 PASSED! +4 >>> 12 PASSED! +4 >>> 13 PASSED! +4 >>> 14 PASSED! +4 >>> 15 PASSED! +4 >>> 16 PASSED! +4 >>> 17 PASSED! +4 >>> 18 PASSED! +4 >>> 19 PASSED! +4 >>> 20 PASSED! +4 >>> 21 PASSED! +4 >>> 22 PASSED! +4 >>> 23 PASSED! +4 >>> 24 PASSED! +4 >>> 25 PASSED! +4 >>> 26 PASSED! +4 >>> 27 PASSED! +4 >>> 28 PASSED! +4 >>> 29 PASSED! +4 >>> 30 PASSED! +4 >>> 31 PASSED! +4 >>> 32 PASSED! +8 >>> 0 PASSED! +8 >>> 1 PASSED! +8 >>> 2 PASSED! +8 >>> 3 PASSED! +8 >>> 4 PASSED! +8 >>> 5 PASSED! +8 >>> 6 PASSED! +8 >>> 7 PASSED! +8 >>> 8 PASSED! +8 >>> 9 PASSED! +8 >>> 10 PASSED! +8 >>> 11 PASSED! +8 >>> 12 PASSED! +8 >>> 13 PASSED! +8 >>> 14 PASSED! +8 >>> 15 PASSED! +8 >>> 16 PASSED! +8 >>> 17 PASSED! +8 >>> 18 PASSED! +8 >>> 19 PASSED! +8 >>> 20 PASSED! +8 >>> 21 PASSED! +8 >>> 22 PASSED! +8 >>> 23 PASSED! +8 >>> 24 PASSED! +8 >>> 25 PASSED! +8 >>> 26 PASSED! +8 >>> 27 PASSED! +8 >>> 28 PASSED! +8 >>> 29 PASSED! +8 >>> 30 PASSED! +8 >>> 31 PASSED! +8 >>> 32 PASSED! +16 >>> 0 PASSED! +16 >>> 1 PASSED! +16 >>> 2 PASSED! +16 >>> 3 PASSED! +16 >>> 4 PASSED! +16 >>> 5 PASSED! +16 >>> 6 PASSED! +16 >>> 7 PASSED! +16 >>> 8 PASSED! +16 >>> 9 PASSED! +16 >>> 10 PASSED! +16 >>> 11 PASSED! +16 >>> 12 PASSED! +16 >>> 13 PASSED! +16 >>> 14 PASSED! +16 >>> 15 PASSED! +16 >>> 16 PASSED! +16 >>> 17 PASSED! +16 >>> 18 PASSED! +16 >>> 19 PASSED! +16 >>> 20 PASSED! +16 >>> 21 PASSED! +16 >>> 22 PASSED! +16 >>> 23 PASSED! +16 >>> 24 PASSED! +16 >>> 25 PASSED! +16 >>> 26 PASSED! +16 >>> 27 PASSED! +16 >>> 28 PASSED! +16 >>> 29 PASSED! +16 >>> 30 PASSED! +16 >>> 31 PASSED! +16 >>> 32 PASSED! +32 >>> 0 PASSED! +32 >>> 1 PASSED! +32 >>> 2 PASSED! +32 >>> 3 PASSED! +32 >>> 4 PASSED! +32 >>> 5 PASSED! +32 >>> 6 PASSED! +32 >>> 7 PASSED! +32 >>> 8 PASSED! +32 >>> 9 PASSED! +32 >>> 10 PASSED! +32 >>> 11 PASSED! +32 >>> 12 PASSED! +32 >>> 13 PASSED! +32 >>> 14 PASSED! +32 >>> 15 PASSED! +32 >>> 16 PASSED! +32 >>> 17 PASSED! +32 >>> 18 PASSED! +32 >>> 19 PASSED! +32 >>> 20 PASSED! +32 >>> 21 PASSED! +32 >>> 22 PASSED! +32 >>> 23 PASSED! +32 >>> 24 PASSED! +32 >>> 25 PASSED! +32 >>> 26 PASSED! +32 >>> 27 PASSED! +32 >>> 28 PASSED! +32 >>> 29 PASSED! +32 >>> 30 PASSED! +32 >>> 31 PASSED! +32 >>> 32 PASSED! +64 >>> 0 PASSED! +64 >>> 1 PASSED! +64 >>> 2 PASSED! +64 >>> 3 PASSED! +64 >>> 4 PASSED! +64 >>> 5 PASSED! +64 >>> 6 PASSED! +64 >>> 7 PASSED! +64 >>> 8 PASSED! +64 >>> 9 PASSED! +64 >>> 10 PASSED! +64 >>> 11 PASSED! +64 >>> 12 PASSED! +64 >>> 13 PASSED! +64 >>> 14 PASSED! +64 >>> 15 PASSED! +64 >>> 16 PASSED! +64 >>> 17 PASSED! +64 >>> 18 PASSED! +64 >>> 19 PASSED! +64 >>> 20 PASSED! +64 >>> 21 PASSED! +64 >>> 22 PASSED! +64 >>> 23 PASSED! +64 >>> 24 PASSED! +64 >>> 25 PASSED! +64 >>> 26 PASSED! +64 >>> 27 PASSED! +64 >>> 28 PASSED! +64 >>> 29 PASSED! +64 >>> 30 PASSED! +64 >>> 31 PASSED! +64 >>> 32 PASSED! +128 >>> 0 PASSED! +128 >>> 1 PASSED! +128 >>> 2 PASSED! +128 >>> 3 PASSED! +128 >>> 4 PASSED! +128 >>> 5 PASSED! +128 >>> 6 PASSED! +128 >>> 7 PASSED! +128 >>> 8 PASSED! +128 >>> 9 PASSED! +128 >>> 10 PASSED! +128 >>> 11 PASSED! +128 >>> 12 PASSED! +128 >>> 13 PASSED! +128 >>> 14 PASSED! +128 >>> 15 PASSED! +128 >>> 16 PASSED! +128 >>> 17 PASSED! +128 >>> 18 PASSED! +128 >>> 19 PASSED! +128 >>> 20 PASSED! +128 >>> 21 PASSED! +128 >>> 22 PASSED! +128 >>> 23 PASSED! +128 >>> 24 PASSED! +128 >>> 25 PASSED! +128 >>> 26 PASSED! +128 >>> 27 PASSED! +128 >>> 28 PASSED! +128 >>> 29 PASSED! +128 >>> 30 PASSED! +128 >>> 31 PASSED! +128 >>> 32 PASSED! +256 >>> 0 PASSED! +256 >>> 1 PASSED! +256 >>> 2 PASSED! +256 >>> 3 PASSED! +256 >>> 4 PASSED! +256 >>> 5 PASSED! +256 >>> 6 PASSED! +256 >>> 7 PASSED! +256 >>> 8 PASSED! +256 >>> 9 PASSED! +256 >>> 10 PASSED! +256 >>> 11 PASSED! +256 >>> 12 PASSED! +256 >>> 13 PASSED! +256 >>> 14 PASSED! +256 >>> 15 PASSED! +256 >>> 16 PASSED! +256 >>> 17 PASSED! +256 >>> 18 PASSED! +256 >>> 19 PASSED! +256 >>> 20 PASSED! +256 >>> 21 PASSED! +256 >>> 22 PASSED! +256 >>> 23 PASSED! +256 >>> 24 PASSED! +256 >>> 25 PASSED! +256 >>> 26 PASSED! +256 >>> 27 PASSED! +256 >>> 28 PASSED! +256 >>> 29 PASSED! +256 >>> 30 PASSED! +256 >>> 31 PASSED! +256 >>> 32 PASSED! +512 >>> 0 PASSED! +512 >>> 1 PASSED! +512 >>> 2 PASSED! +512 >>> 3 PASSED! +512 >>> 4 PASSED! +512 >>> 5 PASSED! +512 >>> 6 PASSED! +512 >>> 7 PASSED! +512 >>> 8 PASSED! +512 >>> 9 PASSED! +512 >>> 10 PASSED! +512 >>> 11 PASSED! +512 >>> 12 PASSED! +512 >>> 13 PASSED! +512 >>> 14 PASSED! +512 >>> 15 PASSED! +512 >>> 16 PASSED! +512 >>> 17 PASSED! +512 >>> 18 PASSED! +512 >>> 19 PASSED! +512 >>> 20 PASSED! +512 >>> 21 PASSED! +512 >>> 22 PASSED! +512 >>> 23 PASSED! +512 >>> 24 PASSED! +512 >>> 25 PASSED! +512 >>> 26 PASSED! +512 >>> 27 PASSED! +512 >>> 28 PASSED! +512 >>> 29 PASSED! +512 >>> 30 PASSED! +512 >>> 31 PASSED! +512 >>> 32 PASSED! +1024 >>> 0 PASSED! +1024 >>> 1 PASSED! +1024 >>> 2 PASSED! +1024 >>> 3 PASSED! +1024 >>> 4 PASSED! +1024 >>> 5 PASSED! +1024 >>> 6 PASSED! +1024 >>> 7 PASSED! +1024 >>> 8 PASSED! +1024 >>> 9 PASSED! +1024 >>> 10 PASSED! +1024 >>> 11 PASSED! +1024 >>> 12 PASSED! +1024 >>> 13 PASSED! +1024 >>> 14 PASSED! +1024 >>> 15 PASSED! +1024 >>> 16 PASSED! +1024 >>> 17 PASSED! +1024 >>> 18 PASSED! +1024 >>> 19 PASSED! +1024 >>> 20 PASSED! +1024 >>> 21 PASSED! +1024 >>> 22 PASSED! +1024 >>> 23 PASSED! +1024 >>> 24 PASSED! +1024 >>> 25 PASSED! +1024 >>> 26 PASSED! +1024 >>> 27 PASSED! +1024 >>> 28 PASSED! +1024 >>> 29 PASSED! +1024 >>> 30 PASSED! +1024 >>> 31 PASSED! +1024 >>> 32 PASSED! +2048 >>> 0 PASSED! +2048 >>> 1 PASSED! +2048 >>> 2 PASSED! +2048 >>> 3 PASSED! +2048 >>> 4 PASSED! +2048 >>> 5 PASSED! +2048 >>> 6 PASSED! +2048 >>> 7 PASSED! +2048 >>> 8 PASSED! +2048 >>> 9 PASSED! +2048 >>> 10 PASSED! +2048 >>> 11 PASSED! +2048 >>> 12 PASSED! +2048 >>> 13 PASSED! +2048 >>> 14 PASSED! +2048 >>> 15 PASSED! +2048 >>> 16 PASSED! +2048 >>> 17 PASSED! +2048 >>> 18 PASSED! +2048 >>> 19 PASSED! +2048 >>> 20 PASSED! +2048 >>> 21 PASSED! +2048 >>> 22 PASSED! +2048 >>> 23 PASSED! +2048 >>> 24 PASSED! +2048 >>> 25 PASSED! +2048 >>> 26 PASSED! +2048 >>> 27 PASSED! +2048 >>> 28 PASSED! +2048 >>> 29 PASSED! +2048 >>> 30 PASSED! +2048 >>> 31 PASSED! +2048 >>> 32 PASSED! +4096 >>> 0 PASSED! +4096 >>> 1 PASSED! +4096 >>> 2 PASSED! +4096 >>> 3 PASSED! +4096 >>> 4 PASSED! +4096 >>> 5 PASSED! +4096 >>> 6 PASSED! +4096 >>> 7 PASSED! +4096 >>> 8 PASSED! +4096 >>> 9 PASSED! +4096 >>> 10 PASSED! +4096 >>> 11 PASSED! +4096 >>> 12 PASSED! +4096 >>> 13 PASSED! +4096 >>> 14 PASSED! +4096 >>> 15 PASSED! +4096 >>> 16 PASSED! +4096 >>> 17 PASSED! +4096 >>> 18 PASSED! +4096 >>> 19 PASSED! +4096 >>> 20 PASSED! +4096 >>> 21 PASSED! +4096 >>> 22 PASSED! +4096 >>> 23 PASSED! +4096 >>> 24 PASSED! +4096 >>> 25 PASSED! +4096 >>> 26 PASSED! +4096 >>> 27 PASSED! +4096 >>> 28 PASSED! +4096 >>> 29 PASSED! +4096 >>> 30 PASSED! +4096 >>> 31 PASSED! +4096 >>> 32 PASSED! +8192 >>> 0 PASSED! +8192 >>> 1 PASSED! +8192 >>> 2 PASSED! +8192 >>> 3 PASSED! +8192 >>> 4 PASSED! +8192 >>> 5 PASSED! +8192 >>> 6 PASSED! +8192 >>> 7 PASSED! +8192 >>> 8 PASSED! +8192 >>> 9 PASSED! +8192 >>> 10 PASSED! +8192 >>> 11 PASSED! +8192 >>> 12 PASSED! +8192 >>> 13 PASSED! +8192 >>> 14 PASSED! +8192 >>> 15 PASSED! +8192 >>> 16 PASSED! +8192 >>> 17 PASSED! +8192 >>> 18 PASSED! +8192 >>> 19 PASSED! +8192 >>> 20 PASSED! +8192 >>> 21 PASSED! +8192 >>> 22 PASSED! +8192 >>> 23 PASSED! +8192 >>> 24 PASSED! +8192 >>> 25 PASSED! +8192 >>> 26 PASSED! +8192 >>> 27 PASSED! +8192 >>> 28 PASSED! +8192 >>> 29 PASSED! +8192 >>> 30 PASSED! +8192 >>> 31 PASSED! +8192 >>> 32 PASSED! +16384 >>> 0 PASSED! +16384 >>> 1 PASSED! +16384 >>> 2 PASSED! +16384 >>> 3 PASSED! +16384 >>> 4 PASSED! +16384 >>> 5 PASSED! +16384 >>> 6 PASSED! +16384 >>> 7 PASSED! +16384 >>> 8 PASSED! +16384 >>> 9 PASSED! +16384 >>> 10 PASSED! +16384 >>> 11 PASSED! +16384 >>> 12 PASSED! +16384 >>> 13 PASSED! +16384 >>> 14 PASSED! +16384 >>> 15 PASSED! +16384 >>> 16 PASSED! +16384 >>> 17 PASSED! +16384 >>> 18 PASSED! +16384 >>> 19 PASSED! +16384 >>> 20 PASSED! +16384 >>> 21 PASSED! +16384 >>> 22 PASSED! +16384 >>> 23 PASSED! +16384 >>> 24 PASSED! +16384 >>> 25 PASSED! +16384 >>> 26 PASSED! +16384 >>> 27 PASSED! +16384 >>> 28 PASSED! +16384 >>> 29 PASSED! +16384 >>> 30 PASSED! +16384 >>> 31 PASSED! +16384 >>> 32 PASSED! +32768 >>> 0 PASSED! +32768 >>> 1 PASSED! +32768 >>> 2 PASSED! +32768 >>> 3 PASSED! +32768 >>> 4 PASSED! +32768 >>> 5 PASSED! +32768 >>> 6 PASSED! +32768 >>> 7 PASSED! +32768 >>> 8 PASSED! +32768 >>> 9 PASSED! +32768 >>> 10 PASSED! +32768 >>> 11 PASSED! +32768 >>> 12 PASSED! +32768 >>> 13 PASSED! +32768 >>> 14 PASSED! +32768 >>> 15 PASSED! +32768 >>> 16 PASSED! +32768 >>> 17 PASSED! +32768 >>> 18 PASSED! +32768 >>> 19 PASSED! +32768 >>> 20 PASSED! +32768 >>> 21 PASSED! +32768 >>> 22 PASSED! +32768 >>> 23 PASSED! +32768 >>> 24 PASSED! +32768 >>> 25 PASSED! +32768 >>> 26 PASSED! +32768 >>> 27 PASSED! +32768 >>> 28 PASSED! +32768 >>> 29 PASSED! +32768 >>> 30 PASSED! +32768 >>> 31 PASSED! +32768 >>> 32 PASSED! +65536 >>> 0 PASSED! +65536 >>> 1 PASSED! +65536 >>> 2 PASSED! +65536 >>> 3 PASSED! +65536 >>> 4 PASSED! +65536 >>> 5 PASSED! +65536 >>> 6 PASSED! +65536 >>> 7 PASSED! +65536 >>> 8 PASSED! +65536 >>> 9 PASSED! +65536 >>> 10 PASSED! +65536 >>> 11 PASSED! +65536 >>> 12 PASSED! +65536 >>> 13 PASSED! +65536 >>> 14 PASSED! +65536 >>> 15 PASSED! +65536 >>> 16 PASSED! +65536 >>> 17 PASSED! +65536 >>> 18 PASSED! +65536 >>> 19 PASSED! +65536 >>> 20 PASSED! +65536 >>> 21 PASSED! +65536 >>> 22 PASSED! +65536 >>> 23 PASSED! +65536 >>> 24 PASSED! +65536 >>> 25 PASSED! +65536 >>> 26 PASSED! +65536 >>> 27 PASSED! +65536 >>> 28 PASSED! +65536 >>> 29 PASSED! +65536 >>> 30 PASSED! +65536 >>> 31 PASSED! +65536 >>> 32 PASSED! +131072 >>> 0 PASSED! +131072 >>> 1 PASSED! +131072 >>> 2 PASSED! +131072 >>> 3 PASSED! +131072 >>> 4 PASSED! +131072 >>> 5 PASSED! +131072 >>> 6 PASSED! +131072 >>> 7 PASSED! +131072 >>> 8 PASSED! +131072 >>> 9 PASSED! +131072 >>> 10 PASSED! +131072 >>> 11 PASSED! +131072 >>> 12 PASSED! +131072 >>> 13 PASSED! +131072 >>> 14 PASSED! +131072 >>> 15 PASSED! +131072 >>> 16 PASSED! +131072 >>> 17 PASSED! +131072 >>> 18 PASSED! +131072 >>> 19 PASSED! +131072 >>> 20 PASSED! +131072 >>> 21 PASSED! +131072 >>> 22 PASSED! +131072 >>> 23 PASSED! +131072 >>> 24 PASSED! +131072 >>> 25 PASSED! +131072 >>> 26 PASSED! +131072 >>> 27 PASSED! +131072 >>> 28 PASSED! +131072 >>> 29 PASSED! +131072 >>> 30 PASSED! +131072 >>> 31 PASSED! +131072 >>> 32 PASSED! +262144 >>> 0 PASSED! +262144 >>> 1 PASSED! +262144 >>> 2 PASSED! +262144 >>> 3 PASSED! +262144 >>> 4 PASSED! +262144 >>> 5 PASSED! +262144 >>> 6 PASSED! +262144 >>> 7 PASSED! +262144 >>> 8 PASSED! +262144 >>> 9 PASSED! +262144 >>> 10 PASSED! +262144 >>> 11 PASSED! +262144 >>> 12 PASSED! +262144 >>> 13 PASSED! +262144 >>> 14 PASSED! +262144 >>> 15 PASSED! +262144 >>> 16 PASSED! +262144 >>> 17 PASSED! +262144 >>> 18 PASSED! +262144 >>> 19 PASSED! +262144 >>> 20 PASSED! +262144 >>> 21 PASSED! +262144 >>> 22 PASSED! +262144 >>> 23 PASSED! +262144 >>> 24 PASSED! +262144 >>> 25 PASSED! +262144 >>> 26 PASSED! +262144 >>> 27 PASSED! +262144 >>> 28 PASSED! +262144 >>> 29 PASSED! +262144 >>> 30 PASSED! +262144 >>> 31 PASSED! +262144 >>> 32 PASSED! +524288 >>> 0 PASSED! +524288 >>> 1 PASSED! +524288 >>> 2 PASSED! +524288 >>> 3 PASSED! +524288 >>> 4 PASSED! +524288 >>> 5 PASSED! +524288 >>> 6 PASSED! +524288 >>> 7 PASSED! +524288 >>> 8 PASSED! +524288 >>> 9 PASSED! +524288 >>> 10 PASSED! +524288 >>> 11 PASSED! +524288 >>> 12 PASSED! +524288 >>> 13 PASSED! +524288 >>> 14 PASSED! +524288 >>> 15 PASSED! +524288 >>> 16 PASSED! +524288 >>> 17 PASSED! +524288 >>> 18 PASSED! +524288 >>> 19 PASSED! +524288 >>> 20 PASSED! +524288 >>> 21 PASSED! +524288 >>> 22 PASSED! +524288 >>> 23 PASSED! +524288 >>> 24 PASSED! +524288 >>> 25 PASSED! +524288 >>> 26 PASSED! +524288 >>> 27 PASSED! +524288 >>> 28 PASSED! +524288 >>> 29 PASSED! +524288 >>> 30 PASSED! +524288 >>> 31 PASSED! +524288 >>> 32 PASSED! +1048576 >>> 0 PASSED! +1048576 >>> 1 PASSED! +1048576 >>> 2 PASSED! +1048576 >>> 3 PASSED! +1048576 >>> 4 PASSED! +1048576 >>> 5 PASSED! +1048576 >>> 6 PASSED! +1048576 >>> 7 PASSED! +1048576 >>> 8 PASSED! +1048576 >>> 9 PASSED! +1048576 >>> 10 PASSED! +1048576 >>> 11 PASSED! +1048576 >>> 12 PASSED! +1048576 >>> 13 PASSED! +1048576 >>> 14 PASSED! +1048576 >>> 15 PASSED! +1048576 >>> 16 PASSED! +1048576 >>> 17 PASSED! +1048576 >>> 18 PASSED! +1048576 >>> 19 PASSED! +1048576 >>> 20 PASSED! +1048576 >>> 21 PASSED! +1048576 >>> 22 PASSED! +1048576 >>> 23 PASSED! +1048576 >>> 24 PASSED! +1048576 >>> 25 PASSED! +1048576 >>> 26 PASSED! +1048576 >>> 27 PASSED! +1048576 >>> 28 PASSED! +1048576 >>> 29 PASSED! +1048576 >>> 30 PASSED! +1048576 >>> 31 PASSED! +1048576 >>> 32 PASSED! +2097152 >>> 0 PASSED! +2097152 >>> 1 PASSED! +2097152 >>> 2 PASSED! +2097152 >>> 3 PASSED! +2097152 >>> 4 PASSED! +2097152 >>> 5 PASSED! +2097152 >>> 6 PASSED! +2097152 >>> 7 PASSED! +2097152 >>> 8 PASSED! +2097152 >>> 9 PASSED! +2097152 >>> 10 PASSED! +2097152 >>> 11 PASSED! +2097152 >>> 12 PASSED! +2097152 >>> 13 PASSED! +2097152 >>> 14 PASSED! +2097152 >>> 15 PASSED! +2097152 >>> 16 PASSED! +2097152 >>> 17 PASSED! +2097152 >>> 18 PASSED! +2097152 >>> 19 PASSED! +2097152 >>> 20 PASSED! +2097152 >>> 21 PASSED! +2097152 >>> 22 PASSED! +2097152 >>> 23 PASSED! +2097152 >>> 24 PASSED! +2097152 >>> 25 PASSED! +2097152 >>> 26 PASSED! +2097152 >>> 27 PASSED! +2097152 >>> 28 PASSED! +2097152 >>> 29 PASSED! +2097152 >>> 30 PASSED! +2097152 >>> 31 PASSED! +2097152 >>> 32 PASSED! +4194304 >>> 0 PASSED! +4194304 >>> 1 PASSED! +4194304 >>> 2 PASSED! +4194304 >>> 3 PASSED! +4194304 >>> 4 PASSED! +4194304 >>> 5 PASSED! +4194304 >>> 6 PASSED! +4194304 >>> 7 PASSED! +4194304 >>> 8 PASSED! +4194304 >>> 9 PASSED! +4194304 >>> 10 PASSED! +4194304 >>> 11 PASSED! +4194304 >>> 12 PASSED! +4194304 >>> 13 PASSED! +4194304 >>> 14 PASSED! +4194304 >>> 15 PASSED! +4194304 >>> 16 PASSED! +4194304 >>> 17 PASSED! +4194304 >>> 18 PASSED! +4194304 >>> 19 PASSED! +4194304 >>> 20 PASSED! +4194304 >>> 21 PASSED! +4194304 >>> 22 PASSED! +4194304 >>> 23 PASSED! +4194304 >>> 24 PASSED! +4194304 >>> 25 PASSED! +4194304 >>> 26 PASSED! +4194304 >>> 27 PASSED! +4194304 >>> 28 PASSED! +4194304 >>> 29 PASSED! +4194304 >>> 30 PASSED! +4194304 >>> 31 PASSED! +4194304 >>> 32 PASSED! +8388608 >>> 0 PASSED! +8388608 >>> 1 PASSED! +8388608 >>> 2 PASSED! +8388608 >>> 3 PASSED! +8388608 >>> 4 PASSED! +8388608 >>> 5 PASSED! +8388608 >>> 6 PASSED! +8388608 >>> 7 PASSED! +8388608 >>> 8 PASSED! +8388608 >>> 9 PASSED! +8388608 >>> 10 PASSED! +8388608 >>> 11 PASSED! +8388608 >>> 12 PASSED! +8388608 >>> 13 PASSED! +8388608 >>> 14 PASSED! +8388608 >>> 15 PASSED! +8388608 >>> 16 PASSED! +8388608 >>> 17 PASSED! +8388608 >>> 18 PASSED! +8388608 >>> 19 PASSED! +8388608 >>> 20 PASSED! +8388608 >>> 21 PASSED! +8388608 >>> 22 PASSED! +8388608 >>> 23 PASSED! +8388608 >>> 24 PASSED! +8388608 >>> 25 PASSED! +8388608 >>> 26 PASSED! +8388608 >>> 27 PASSED! +8388608 >>> 28 PASSED! +8388608 >>> 29 PASSED! +8388608 >>> 30 PASSED! +8388608 >>> 31 PASSED! +8388608 >>> 32 PASSED! +16777216 >>> 0 PASSED! +16777216 >>> 1 PASSED! +16777216 >>> 2 PASSED! +16777216 >>> 3 PASSED! +16777216 >>> 4 PASSED! +16777216 >>> 5 PASSED! +16777216 >>> 6 PASSED! +16777216 >>> 7 PASSED! +16777216 >>> 8 PASSED! +16777216 >>> 9 PASSED! +16777216 >>> 10 PASSED! +16777216 >>> 11 PASSED! +16777216 >>> 12 PASSED! +16777216 >>> 13 PASSED! +16777216 >>> 14 PASSED! +16777216 >>> 15 PASSED! +16777216 >>> 16 PASSED! +16777216 >>> 17 PASSED! +16777216 >>> 18 PASSED! +16777216 >>> 19 PASSED! +16777216 >>> 20 PASSED! +16777216 >>> 21 PASSED! +16777216 >>> 22 PASSED! +16777216 >>> 23 PASSED! +16777216 >>> 24 PASSED! +16777216 >>> 25 PASSED! +16777216 >>> 26 PASSED! +16777216 >>> 27 PASSED! +16777216 >>> 28 PASSED! +16777216 >>> 29 PASSED! +16777216 >>> 30 PASSED! +16777216 >>> 31 PASSED! +16777216 >>> 32 PASSED! +33554432 >>> 0 PASSED! +33554432 >>> 1 PASSED! +33554432 >>> 2 PASSED! +33554432 >>> 3 PASSED! +33554432 >>> 4 PASSED! +33554432 >>> 5 PASSED! +33554432 >>> 6 PASSED! +33554432 >>> 7 PASSED! +33554432 >>> 8 PASSED! +33554432 >>> 9 PASSED! +33554432 >>> 10 PASSED! +33554432 >>> 11 PASSED! +33554432 >>> 12 PASSED! +33554432 >>> 13 PASSED! +33554432 >>> 14 PASSED! +33554432 >>> 15 PASSED! +33554432 >>> 16 PASSED! +33554432 >>> 17 PASSED! +33554432 >>> 18 PASSED! +33554432 >>> 19 PASSED! +33554432 >>> 20 PASSED! +33554432 >>> 21 PASSED! +33554432 >>> 22 PASSED! +33554432 >>> 23 PASSED! +33554432 >>> 24 PASSED! +33554432 >>> 25 PASSED! +33554432 >>> 26 PASSED! +33554432 >>> 27 PASSED! +33554432 >>> 28 PASSED! +33554432 >>> 29 PASSED! +33554432 >>> 30 PASSED! +33554432 >>> 31 PASSED! +33554432 >>> 32 PASSED! +67108864 >>> 0 PASSED! +67108864 >>> 1 PASSED! +67108864 >>> 2 PASSED! +67108864 >>> 3 PASSED! +67108864 >>> 4 PASSED! +67108864 >>> 5 PASSED! +67108864 >>> 6 PASSED! +67108864 >>> 7 PASSED! +67108864 >>> 8 PASSED! +67108864 >>> 9 PASSED! +67108864 >>> 10 PASSED! +67108864 >>> 11 PASSED! +67108864 >>> 12 PASSED! +67108864 >>> 13 PASSED! +67108864 >>> 14 PASSED! +67108864 >>> 15 PASSED! +67108864 >>> 16 PASSED! +67108864 >>> 17 PASSED! +67108864 >>> 18 PASSED! +67108864 >>> 19 PASSED! +67108864 >>> 20 PASSED! +67108864 >>> 21 PASSED! +67108864 >>> 22 PASSED! +67108864 >>> 23 PASSED! +67108864 >>> 24 PASSED! +67108864 >>> 25 PASSED! +67108864 >>> 26 PASSED! +67108864 >>> 27 PASSED! +67108864 >>> 28 PASSED! +67108864 >>> 29 PASSED! +67108864 >>> 30 PASSED! +67108864 >>> 31 PASSED! +67108864 >>> 32 PASSED! +134217728 >>> 0 PASSED! +134217728 >>> 1 PASSED! +134217728 >>> 2 PASSED! +134217728 >>> 3 PASSED! +134217728 >>> 4 PASSED! +134217728 >>> 5 PASSED! +134217728 >>> 6 PASSED! +134217728 >>> 7 PASSED! +134217728 >>> 8 PASSED! +134217728 >>> 9 PASSED! +134217728 >>> 10 PASSED! +134217728 >>> 11 PASSED! +134217728 >>> 12 PASSED! +134217728 >>> 13 PASSED! +134217728 >>> 14 PASSED! +134217728 >>> 15 PASSED! +134217728 >>> 16 PASSED! +134217728 >>> 17 PASSED! +134217728 >>> 18 PASSED! +134217728 >>> 19 PASSED! +134217728 >>> 20 PASSED! +134217728 >>> 21 PASSED! +134217728 >>> 22 PASSED! +134217728 >>> 23 PASSED! +134217728 >>> 24 PASSED! +134217728 >>> 25 PASSED! +134217728 >>> 26 PASSED! +134217728 >>> 27 PASSED! +134217728 >>> 28 PASSED! +134217728 >>> 29 PASSED! +134217728 >>> 30 PASSED! +134217728 >>> 31 PASSED! +134217728 >>> 32 PASSED! +268435456 >>> 0 PASSED! +268435456 >>> 1 PASSED! +268435456 >>> 2 PASSED! +268435456 >>> 3 PASSED! +268435456 >>> 4 PASSED! +268435456 >>> 5 PASSED! +268435456 >>> 6 PASSED! +268435456 >>> 7 PASSED! +268435456 >>> 8 PASSED! +268435456 >>> 9 PASSED! +268435456 >>> 10 PASSED! +268435456 >>> 11 PASSED! +268435456 >>> 12 PASSED! +268435456 >>> 13 PASSED! +268435456 >>> 14 PASSED! +268435456 >>> 15 PASSED! +268435456 >>> 16 PASSED! +268435456 >>> 17 PASSED! +268435456 >>> 18 PASSED! +268435456 >>> 19 PASSED! +268435456 >>> 20 PASSED! +268435456 >>> 21 PASSED! +268435456 >>> 22 PASSED! +268435456 >>> 23 PASSED! +268435456 >>> 24 PASSED! +268435456 >>> 25 PASSED! +268435456 >>> 26 PASSED! +268435456 >>> 27 PASSED! +268435456 >>> 28 PASSED! +268435456 >>> 29 PASSED! +268435456 >>> 30 PASSED! +268435456 >>> 31 PASSED! +268435456 >>> 32 PASSED! +536870912 >>> 0 PASSED! +536870912 >>> 1 PASSED! +536870912 >>> 2 PASSED! +536870912 >>> 3 PASSED! +536870912 >>> 4 PASSED! +536870912 >>> 5 PASSED! +536870912 >>> 6 PASSED! +536870912 >>> 7 PASSED! +536870912 >>> 8 PASSED! +536870912 >>> 9 PASSED! +536870912 >>> 10 PASSED! +536870912 >>> 11 PASSED! +536870912 >>> 12 PASSED! +536870912 >>> 13 PASSED! +536870912 >>> 14 PASSED! +536870912 >>> 15 PASSED! +536870912 >>> 16 PASSED! +536870912 >>> 17 PASSED! +536870912 >>> 18 PASSED! +536870912 >>> 19 PASSED! +536870912 >>> 20 PASSED! +536870912 >>> 21 PASSED! +536870912 >>> 22 PASSED! +536870912 >>> 23 PASSED! +536870912 >>> 24 PASSED! +536870912 >>> 25 PASSED! +536870912 >>> 26 PASSED! +536870912 >>> 27 PASSED! +536870912 >>> 28 PASSED! +536870912 >>> 29 PASSED! +536870912 >>> 30 PASSED! +536870912 >>> 31 PASSED! +536870912 >>> 32 PASSED! +1073741824 >>> 0 PASSED! +1073741824 >>> 1 PASSED! +1073741824 >>> 2 PASSED! +1073741824 >>> 3 PASSED! +1073741824 >>> 4 PASSED! +1073741824 >>> 5 PASSED! +1073741824 >>> 6 PASSED! +1073741824 >>> 7 PASSED! +1073741824 >>> 8 PASSED! +1073741824 >>> 9 PASSED! +1073741824 >>> 10 PASSED! +1073741824 >>> 11 PASSED! +1073741824 >>> 12 PASSED! +1073741824 >>> 13 PASSED! +1073741824 >>> 14 PASSED! +1073741824 >>> 15 PASSED! +1073741824 >>> 16 PASSED! +1073741824 >>> 17 PASSED! +1073741824 >>> 18 PASSED! +1073741824 >>> 19 PASSED! +1073741824 >>> 20 PASSED! +1073741824 >>> 21 PASSED! +1073741824 >>> 22 PASSED! +1073741824 >>> 23 PASSED! +1073741824 >>> 24 PASSED! +1073741824 >>> 25 PASSED! +1073741824 >>> 26 PASSED! +1073741824 >>> 27 PASSED! +1073741824 >>> 28 PASSED! +1073741824 >>> 29 PASSED! +1073741824 >>> 30 PASSED! +1073741824 >>> 31 PASSED! +1073741824 >>> 32 PASSED! +2147483648 >>> 0 PASSED! +2147483648 >>> 1 PASSED! +2147483648 >>> 2 PASSED! +2147483648 >>> 3 PASSED! +2147483648 >>> 4 PASSED! +2147483648 >>> 5 PASSED! +2147483648 >>> 6 PASSED! +2147483648 >>> 7 PASSED! +2147483648 >>> 8 PASSED! +2147483648 >>> 9 PASSED! +2147483648 >>> 10 PASSED! +2147483648 >>> 11 PASSED! +2147483648 >>> 12 PASSED! +2147483648 >>> 13 PASSED! +2147483648 >>> 14 PASSED! +2147483648 >>> 15 PASSED! +2147483648 >>> 16 PASSED! +2147483648 >>> 17 PASSED! +2147483648 >>> 18 PASSED! +2147483648 >>> 19 PASSED! +2147483648 >>> 20 PASSED! +2147483648 >>> 21 PASSED! +2147483648 >>> 22 PASSED! +2147483648 >>> 23 PASSED! +2147483648 >>> 24 PASSED! +2147483648 >>> 25 PASSED! +2147483648 >>> 26 PASSED! +2147483648 >>> 27 PASSED! +2147483648 >>> 28 PASSED! +2147483648 >>> 29 PASSED! +2147483648 >>> 30 PASSED! +2147483648 >>> 31 PASSED! +2147483648 >>> 32 PASSED! +4294967296 >>> 0 PASSED! +4294967296 >>> 1 PASSED! +4294967296 >>> 2 PASSED! +4294967296 >>> 3 PASSED! +4294967296 >>> 4 PASSED! +4294967296 >>> 5 PASSED! +4294967296 >>> 6 PASSED! +4294967296 >>> 7 PASSED! +4294967296 >>> 8 PASSED! +4294967296 >>> 9 PASSED! +4294967296 >>> 10 PASSED! +4294967296 >>> 11 PASSED! +4294967296 >>> 12 PASSED! +4294967296 >>> 13 PASSED! +4294967296 >>> 14 PASSED! +4294967296 >>> 15 PASSED! +4294967296 >>> 16 PASSED! +4294967296 >>> 17 PASSED! +4294967296 >>> 18 PASSED! +4294967296 >>> 19 PASSED! +4294967296 >>> 20 PASSED! +4294967296 >>> 21 PASSED! +4294967296 >>> 22 PASSED! +4294967296 >>> 23 PASSED! +4294967296 >>> 24 PASSED! +4294967296 >>> 25 PASSED! +4294967296 >>> 26 PASSED! +4294967296 >>> 27 PASSED! +4294967296 >>> 28 PASSED! +4294967296 >>> 29 PASSED! +4294967296 >>> 30 PASSED! +4294967296 >>> 31 PASSED! +4294967296 >>> 32 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..46f40e9f85c9ed071fa4b9606600b924b1d7d37f GIT binary patch literal 3365 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_7_3/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/Test.as new file mode 100644 index 000000000..936d5a52c --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/Test.as @@ -0,0 +1,119 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_8_1"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "true < false", false, true < false ); + array[item++] = Assert.expectEq( "false < true", true, false < true ); + array[item++] = Assert.expectEq( "false < false", false, false < false ); + array[item++] = Assert.expectEq( "true < true", false, true < true ); + + array[item++] = Assert.expectEq( "new Boolean(true) < new Boolean(true)", false, new Boolean(true) < new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) < new Boolean(false)", false, new Boolean(true) < new Boolean(false) ); + array[item++] = Assert.expectEq( "new Boolean(false) < new Boolean(true)", true, new Boolean(false) < new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) < new Boolean(false)", false, new Boolean(false) < new Boolean(false) ); + + array[item++] = Assert.expectEq( "new MyObject(Infinity) < new MyObject(Infinity)", false, new MyObject( Number.POSITIVE_INFINITY ) < new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) < new MyObject(Infinity)", true, new MyObject( Number.NEGATIVE_INFINITY ) < new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) < new MyObject(-Infinity)", false, new MyObject( Number.NEGATIVE_INFINITY ) < new MyObject( Number.NEGATIVE_INFINITY) ); + + array[item++] = Assert.expectEq( "new MyValueObject(false) < new MyValueObject(true)", true, new MyValueObject(false) < new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(true) < new MyValueObject(true)", false, new MyValueObject(true) < new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(false) < new MyValueObject(false)", false, new MyValueObject(false) < new MyValueObject(false) ); + + array[item++] = Assert.expectEq( "new MyStringObject(false) < new MyStringObject(true)", true, new MyStringObject(false) < new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(true) < new MyStringObject(true)", false, new MyStringObject(true) < new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(false) < new MyStringObject(false)", false, new MyStringObject(false) < new MyStringObject(false) ); + + array[item++] = Assert.expectEq( "Number.NaN < Number.NaN", false, Number.NaN < Number.NaN ); + array[item++] = Assert.expectEq( "0 < Number.NaN", false, 0 < Number.NaN ); + array[item++] = Assert.expectEq( "Number.NaN < 0", false, Number.NaN < 0 ); + + array[item++] = Assert.expectEq( "0 < -0", false, 0 < -0 ); + array[item++] = Assert.expectEq( "-0 < 0", false, -0 < 0 ); + + array[item++] = Assert.expectEq( "Infinity < 0", false, Number.POSITIVE_INFINITY < 0 ); + array[item++] = Assert.expectEq( "Infinity < Number.MAX_VALUE", false, Number.POSITIVE_INFINITY < Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Infinity < Infinity", false, Number.POSITIVE_INFINITY < Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 < Infinity", true, 0 < Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE < Infinity", true, Number.MAX_VALUE < Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 < -Infinity", false, 0 < Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE < -Infinity", false, Number.MAX_VALUE < Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Infinity < -Infinity", false, Number.NEGATIVE_INFINITY < Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "-Infinity < 0", true, Number.NEGATIVE_INFINITY < 0 ); + array[item++] = Assert.expectEq( "-Infinity < -Number.MAX_VALUE", true, Number.NEGATIVE_INFINITY < -Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "-Infinity < Number.MIN_VALUE", true, Number.NEGATIVE_INFINITY < Number.MIN_VALUE ); + + array[item++] = Assert.expectEq( "'string' < 'string'", false, 'string' < 'string' ); + array[item++] = Assert.expectEq( "'astring' < 'string'", true, 'astring' < 'string' ); + array[item++] = Assert.expectEq( "'strings' < 'stringy'", true, 'strings' < 'stringy' ); + array[item++] = Assert.expectEq( "'strings' < 'stringier'", false, 'strings' < 'stringier' ); + array[item++] = Assert.expectEq( "'string' < 'astring'", false, 'string' < 'astring' ); + array[item++] = Assert.expectEq( "'string' < 'strings'", true, 'string' < 'strings' ); + array[item++] = Assert.expectEq( "'string' < 'str'", false, 'string' < 'str' ); + + array[item++] = Assert.expectEq( "44 < 55", true, 44 < 55 ); + array[item++] = Assert.expectEq( "55 < 44", false, 55 < 44 ); + array[item++] = Assert.expectEq( "56.43 < 65.0", true, 56.43 < 65.0 ); + array[item++] = Assert.expectEq( "65.0 < 56.43", false, 65.0 < 56.43 ); + array[item++] = Assert.expectEq( "43247503.43 < 945540654.654", true, 43247503.43 < 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43<945540654.654", true, 43247503.43<945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43< 945540654.654", true, 43247503.43< 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43 < 945540654.654", true, 43247503.43 < 945540654.654 ); + array[item++] = Assert.expectEq( "-56.43 < 65.0", true, -56.43 < 65.0 ); + array[item++] = Assert.expectEq( "-56.43 < -65.0", false, -56.43 < -65.0 ); + var b = (-56.43) < (-56.43); + array[item++] = Assert.expectEq( "-56.43 < -56.43", false, b ); + + array[item++] = Assert.expectEq( "100 < 100", false, 100 < 100 ); + + // https://bugzilla.mozilla.org/show_bug.cgi?id=476556 + // + // This test is not really sufficient, because it depends on the code generated by + // the compiler. In the case of ASC it generates IFNLE, and the IFN* instructions + // were buggy when NaN were involved in double/double comparisons. To do better + // we need an ABC assembler, _and_ even then we may need to switch off optimization + // in the interpreter. + + var b = 0/0; + var result; + if (b < 0.0001) + result = "wrong"; + else + result = "right"; + array[item++] = Assert.expectEq( "if (NaN < 0.0001) ...", "right", result); + + return ( array ); +} +function MyObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + //this.toString = new Function( "return this.value +''" ); + this.valueOf = function(){return this.value}; + this.toString = function(){return this.value +''}; +} +function MyValueObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} +function MyStringObject(value) { + this.value = value; + //this.toString = new Function( "return this.value +''" ); + this.toString = function(){return this.value +'' }; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/output.txt new file mode 100644 index 000000000..1915068a5 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/output.txt @@ -0,0 +1,53 @@ +true < false PASSED! +false < true PASSED! +false < false PASSED! +true < true PASSED! +new Boolean(true) < new Boolean(true) PASSED! +new Boolean(true) < new Boolean(false) PASSED! +new Boolean(false) < new Boolean(true) PASSED! +new Boolean(false) < new Boolean(false) PASSED! +new MyObject(Infinity) < new MyObject(Infinity) PASSED! +new MyObject(-Infinity) < new MyObject(Infinity) PASSED! +new MyObject(-Infinity) < new MyObject(-Infinity) PASSED! +new MyValueObject(false) < new MyValueObject(true) PASSED! +new MyValueObject(true) < new MyValueObject(true) PASSED! +new MyValueObject(false) < new MyValueObject(false) PASSED! +new MyStringObject(false) < new MyStringObject(true) PASSED! +new MyStringObject(true) < new MyStringObject(true) PASSED! +new MyStringObject(false) < new MyStringObject(false) PASSED! +Number.NaN < Number.NaN PASSED! +0 < Number.NaN PASSED! +Number.NaN < 0 PASSED! +0 < -0 PASSED! +-0 < 0 PASSED! +Infinity < 0 PASSED! +Infinity < Number.MAX_VALUE PASSED! +Infinity < Infinity PASSED! +0 < Infinity PASSED! +Number.MAX_VALUE < Infinity PASSED! +0 < -Infinity PASSED! +Number.MAX_VALUE < -Infinity PASSED! +-Infinity < -Infinity PASSED! +-Infinity < 0 PASSED! +-Infinity < -Number.MAX_VALUE PASSED! +-Infinity < Number.MIN_VALUE PASSED! +'string' < 'string' PASSED! +'astring' < 'string' PASSED! +'strings' < 'stringy' PASSED! +'strings' < 'stringier' PASSED! +'string' < 'astring' PASSED! +'string' < 'strings' PASSED! +'string' < 'str' PASSED! +44 < 55 PASSED! +55 < 44 PASSED! +56.43 < 65.0 PASSED! +65.0 < 56.43 PASSED! +43247503.43 < 945540654.654 PASSED! +43247503.43<945540654.654 PASSED! +43247503.43< 945540654.654 PASSED! +43247503.43 < 945540654.654 PASSED! +-56.43 < 65.0 PASSED! +-56.43 < -65.0 PASSED! +-56.43 < -56.43 PASSED! +100 < 100 PASSED! +if (NaN < 0.0001) ... PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..62e48e8edb63271aa2f3394201105bb9fcce4e92 GIT binary patch literal 4056 zcmV;}4=3zquqqEPpJ3bbkXav|Aq1J3TAd%mA@?vK3-oE<(w+|Lne`WT@OjFy9)2%&Ga z{sJSkP}<4PuP>*iNBj9gc^+C9+D%N%&CMm$$;9Mj42W3y zs8G=!#R}yidC^R;Y?L#l+(9K*EJ&=a>BYm!1zE0T-O1QV4-QLtGv!VuVdRZ{qfjX) zCgKy2XeTqDEtdAR%A$5~kk4f_mM-xqR^BUS?myHX7_n?#EAK5N&OjDZ$yM^kV)8)C z>={xzZ#B?bVnp7vJ ztl=`}LgIxxQS-pfT|~=)|8y^)i>~L-pWpSk;qD7?aDn^(HU)bCp@07H`VYSY*1vjg z808B3S!lcmA*N(Y+P*P?0w@j*imcDO&ptZ1;5m1739j!f{P^3+^gnKde-ZolWX=CC zv5P(b{qxzbS1Ag^kE^x2FX1r=62kox=6x#ztzHO4fBi zNGDgWrj}bJ>pCD=`HY=;iCSjr>$R>^rBbovJ%E{4){XLEz9L+@y7pS~YV(^#a|+UK zzNl;YP4D&O#n+RUQdd_tZnV8)Zl;V9nTSB-1GvZEoS*k6*Du|?mRh}$T3=sVZ%>wX z57{$hb}%oQ7imbmap!u<1X|ea8pWpdR64buTD@oy;dLWxl#D{=182((sxWbbjv8^vPUmO@0K*(wEdcMa$==E zlcrL`h&?5Hbo8*4vtXm%vG>7QAD#oPR5oha;I?M8vQhT!8WpznF0ux_c4X}-|FxrA zTK>?mT20rEtZi#GdGki{4;U~|`x>z}3v8Q2a$_nnsj9OH{Vw1SBlu$JYM zrIL2!tH92b7NjiOl|J(fE#~ys8|Kwp29M##E1!47YUpGp@>uVb;H&$+??yan*S5{YU+)*3&*jHx? zuBI*}8&XXCKU173la}9c&l~63D47d0@g@E*kC^(EIN@s7`v*z`ki2nZbzdQbS-)N9(=3ZOo_JD z>Y(bTPjxi9UyOBVezW&_tLF!2@#3Py1oVDvw_zS3U6w{nb#`Vt4o9a$TWC1FXeXkDs8!}G*a8SaaC0( zMx}T>?z74j;{mH;n^Wwv45f=!foiYhU$&|k>v;*T6e>nZgPP|-?E!CZ&@UFDq|OzL zlCS~4E)_$t3Ih-8(_t3O-NR?|MXe%O4G;TalnnN(#<3@vH=j)InpW9!YkJwUTC~J+ zT*w=R-O8R&KGflUVZ-YvbN%(=#r%2nv7g6!i57%WAJ%?Ot*-#D!y`z$#mYRaI;%9K zYq|11o4yp2QniGpFfTPLl2!WD+6n3AYU=j&)WsXAWyvfDAf{{>l2yLNweq~9UK$zY zE3kToU=<4_SJ*Kgtz|{Kya`)jFgOX`4J6y|Z>W&E8>t43)Cv&33`LhAT8ji^YddbI z9i-jU;qPeU5s&Dr?Z1V?m`7nxm!CO!)YT@sF%>y>@NjZ@De+;>FY-;idF7h1SEK

^!Oa8*2o4h5LU1eLLWHyv(m`++!QF)P z5Zp^}JHg=TCwPG1A%ceqmI)puc%0xE!3ly@f+q-`BzTJ8X@X}6o+bDkq2~#mBXpk7 zR|s7o_=32I#U)JWqL{?uYgqKU#4g;8MHd$5v3M1W*RZ&T#aFPnfW_NbyobdcCZ6BM z#PvIHd+;{OpGe+tK+ z!SUyC`~?=_}7>~6cN2d{1`4>MEnU{1_+2m`~;36A`TN# zCgLa&$B7st;@^YUM~B(_3VV@pH5e~7oF6xK)h;eKa&er??}^x-fJB#b+d8}v>XpoF_%=MLg-co&S|9z;+S z_d=!-+z0)R;eO;n3YL%;#qmJU-8C5Gx`%>%Pb4Vx4hKnJG)Vj9peT(5Jp-db?;z(9 z1P-GyHs5jR1u1M5V$cV?Ji_Z{JEk1Q9XNpp!Vw(cuxpqtq>CJ9RRur24C~=I>C!iBbY@O%?^pq^u;wk8qQd_4w1wAcCYw;rJ zA{A|2)J4!Q$(!e+SI%SWY>^%yJ=9~99^C`vWt)_3(hH=QdTr9Hdx2buT8uNN4@e*N z*`!bR0eMBPlV>^oK>DfQCjGh}$k*k~x$XJvD_7>QZCHF0@J+PI=9}~;;8&w2w(v6F z416Kvqgr04AGEHhV&4S zH)V@)l5Ie?(KefG)7yZ&CD(JxHrWnjJ8iegcD)_QH)L3#SJ`1vVW7e^Y*S%94AdPt zg3g!@U^-}r&2;D;z}z)6MUcgG0@F!5ZKhN21m;c1lc3N^4=`IM1ILm@^#avPdu^&$?*(eRPQ7ALeL(fm zKAY;(`+(A-=G<#cKQR5Y-)8#teqi({>+6h?fRd2#wfGM2`To8?9wp z`o4t?12#;DZERQ{25hg6B`qonRFp<-Dhewwqr5FE_m%q=Ap;>(*(PLN1|lC-_Upt5 z5F>QNCPwrTAPP~Xs2o_tC=jD`)FwvtQ6Ro915vVwF(Ah1m`#l7V?dPIIQA`K9Efo` zZWH7BI1rU65JihnfKaGn6N;_?amaE!u!tBCF&eXpm>vV-VKkyd&RIkph&YYgL|l&p z@koxGizpV603tyXHj&U1KpaIAu1IZ7RUlNV+JvgBKzu`vBoi)+m;hpePT0hRJ^{o# z(S$p}S;Qm|lXTK1CiO`me$7El0Wn3VY+_2E0^*wvVj75PI&Blv`ZN%~?jUA>n4vQ^ zF{94_@vUfrug_%`h*>&o6SMj(5bt6cke^w|IY7?QbE649!GHSrS)BwYkiUWDQ;oH!&#iV{J--Ch&aQ>8Yoi z)8`=F6AY@(nd#;s-8`KiJ%NgWVk~;x$Lb}7M2tON;aELhLD2F*g(6-)hC*UnRJUJK zw=b&O%j$MY-A=39MBTo08}(YBJzwJzlR?`3qbj${5}}fDifRC3PPhm{{jAFtc8FLX}=G4u+_3{f7SGV(Bgqq@3Axi zsP&XTG%XdZA26#H>RD8cFgAMC)HD(TYH_;Iq-y_n2cVQVU_(* zU5f9*EZ-Q*aH@f!HZyQ_-(}#_eYb&?5AZ%`VCnHbZ{WOpCy7P_GD63y&Z&3NScV@{ z$618o%H#A^^n}682ELc_+t(n71-jN&U7KrQVAg?FZ1k`wC)>B5KKU#FGXU2QaHxg3?o^*DKgLf_ zpE4_W^&G4c+P~vRiHc_5ArI_HRij z$*qT|lWp@9Z1Z-dPix-_D`73X)uD819b27>q;+m}DT7+qR<{z-y0?0isMfR9tBh#9 zTYbuy*0q&;~vyX8o z2-{Ip{su=+w)LN`W!!;w^RD~^hy14Uw@le#N>%wgGYc!{BdEC<9vLvaW-=iFuRPT! ztdfV7?1nc9E^w@#zz@2S%|^JV>0KB2dmR2fhrie1&pG^k4*%N@f4{?j-{F@W{=CCK z;PCG|{DW?IeS+<9lFe3|;JX3zYP#Th@)`Sf8)~@Ck%rq`yzT1U3$X9KR`w2S{_k)J KjQ<0njA?@c8{~BW literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/Test.as new file mode 100644 index 000000000..71d075515 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/Test.as @@ -0,0 +1,102 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "e11_8_2"; +// var VERSION = "ECMA_1"; + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + array[item++] = Assert.expectEq( "true > false", true, true > false ); + array[item++] = Assert.expectEq( "false > true", false, false > true ); + array[item++] = Assert.expectEq( "false > false", false, false > false ); + array[item++] = Assert.expectEq( "true > true", false, true > true ); + + array[item++] = Assert.expectEq( "new Boolean(true) > new Boolean(true)", false, new Boolean(true) > new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) > new Boolean(false)", true, new Boolean(true) > new Boolean(false) ); + array[item++] = Assert.expectEq( "new Boolean(false) > new Boolean(true)", false, new Boolean(false) > new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) > new Boolean(false)", false, new Boolean(false) > new Boolean(false) ); + + array[item++] = Assert.expectEq( "new MyObject(Infinity) > new MyObject(Infinity)", false, new MyObject( Number.POSITIVE_INFINITY ) > new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) > new MyObject(Infinity)", false, new MyObject( Number.NEGATIVE_INFINITY ) > new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) > new MyObject(-Infinity)", false, new MyObject( Number.NEGATIVE_INFINITY ) > new MyObject( Number.NEGATIVE_INFINITY) ); + + array[item++] = Assert.expectEq( "new MyValueObject(false) > new MyValueObject(true)", false, new MyValueObject(false) > new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(true) > new MyValueObject(true)", false, new MyValueObject(true) > new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(false) > new MyValueObject(false)", false, new MyValueObject(false) > new MyValueObject(false) ); + + array[item++] = Assert.expectEq( "new MyStringObject(false) > new MyStringObject(true)", false, new MyStringObject(false) > new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(true) > new MyStringObject(true)", false, new MyStringObject(true) > new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(false) > new MyStringObject(false)", false, new MyStringObject(false) > new MyStringObject(false) ); + + array[item++] = Assert.expectEq( "Number.NaN > Number.NaN", false, Number.NaN > Number.NaN ); + array[item++] = Assert.expectEq( "0 > Number.NaN", false, 0 > Number.NaN ); + array[item++] = Assert.expectEq( "Number.NaN > 0", false, Number.NaN > 0 ); + + array[item++] = Assert.expectEq( "0 > -0", false, 0 > -0 ); + array[item++] = Assert.expectEq( "-0 > 0", false, -0 > 0 ); + + array[item++] = Assert.expectEq( "Infinity > 0", true, Number.POSITIVE_INFINITY > 0 ); + array[item++] = Assert.expectEq( "Infinity > Number.MAX_VALUE", true, Number.POSITIVE_INFINITY > Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Infinity > Infinity", false, Number.POSITIVE_INFINITY > Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 > Infinity", false, 0 > Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE > Infinity", false, Number.MAX_VALUE > Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 > -Infinity", true, 0 > Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE > -Infinity", true, Number.MAX_VALUE > Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Infinity > -Infinity", false, Number.NEGATIVE_INFINITY > Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "-Infinity > 0", false, Number.NEGATIVE_INFINITY > 0 ); + array[item++] = Assert.expectEq( "-Infinity > -Number.MAX_VALUE", false, Number.NEGATIVE_INFINITY > -Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "-Infinity > Number.MIN_VALUE", false, Number.NEGATIVE_INFINITY > Number.MIN_VALUE ); + + array[item++] = Assert.expectEq( "'string' > 'string'", false, 'string' > 'string' ); + array[item++] = Assert.expectEq( "'astring' > 'string'", false, 'astring' > 'string' ); + array[item++] = Assert.expectEq( "'strings' > 'stringy'", false, 'strings' > 'stringy' ); + array[item++] = Assert.expectEq( "'strings' > 'stringier'", true, 'strings' > 'stringier' ); + array[item++] = Assert.expectEq( "'string' > 'astring'", true, 'string' > 'astring' ); + array[item++] = Assert.expectEq( "'string' > 'strings'", false, 'string' > 'strings' ); + array[item++] = Assert.expectEq( "'string' > 'str'", true, 'string' > 'str' ); + + array[item++] = Assert.expectEq( "44 > 55", false, 44 > 55 ); + array[item++] = Assert.expectEq( "55 > 44", true, 55 > 44 ); + array[item++] = Assert.expectEq( "56.43 > 65.0", false, 56.43 > 65.0 ); + array[item++] = Assert.expectEq( "65.0 > 56.43", true, 65.0 > 56.43 ); + array[item++] = Assert.expectEq( "43247503.43 > 945540654.654", false, 43247503.43 > 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43>945540654.654", false, 43247503.43>945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43> 945540654.654", false, 43247503.43> 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43 > 945540654.654", false, 43247503.43 > 945540654.654 ); + array[item++] = Assert.expectEq( "-56.43 > 65.0", false, -56.43 > 65.0 ); + array[item++] = Assert.expectEq( "-56.43 > -65.0", true, -56.43 > -65.0 ); + array[item++] = Assert.expectEq( "-56.43 > -56.43", false, -56.43 > -56.43 ); + array[item++] = Assert.expectEq( "100 > 100", false, 100 > 100 ); + + + return ( array ); +} +function MyObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + //this.toString = new Function( "return this.value +''" ); + this.valueOf = function(){return this.value}; + this.toString = function(){return this.value +''}; +} +function MyValueObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} +function MyStringObject(value) { + this.value = value; + //this.toString = new Function( "return this.value +''" ); + this.toString = function(){return this.value +''}; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/output.txt new file mode 100644 index 000000000..d10f00b58 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/output.txt @@ -0,0 +1,52 @@ +true > false PASSED! +false > true PASSED! +false > false PASSED! +true > true PASSED! +new Boolean(true) > new Boolean(true) PASSED! +new Boolean(true) > new Boolean(false) PASSED! +new Boolean(false) > new Boolean(true) PASSED! +new Boolean(false) > new Boolean(false) PASSED! +new MyObject(Infinity) > new MyObject(Infinity) PASSED! +new MyObject(-Infinity) > new MyObject(Infinity) PASSED! +new MyObject(-Infinity) > new MyObject(-Infinity) PASSED! +new MyValueObject(false) > new MyValueObject(true) PASSED! +new MyValueObject(true) > new MyValueObject(true) PASSED! +new MyValueObject(false) > new MyValueObject(false) PASSED! +new MyStringObject(false) > new MyStringObject(true) PASSED! +new MyStringObject(true) > new MyStringObject(true) PASSED! +new MyStringObject(false) > new MyStringObject(false) PASSED! +Number.NaN > Number.NaN PASSED! +0 > Number.NaN PASSED! +Number.NaN > 0 PASSED! +0 > -0 PASSED! +-0 > 0 PASSED! +Infinity > 0 PASSED! +Infinity > Number.MAX_VALUE PASSED! +Infinity > Infinity PASSED! +0 > Infinity PASSED! +Number.MAX_VALUE > Infinity PASSED! +0 > -Infinity PASSED! +Number.MAX_VALUE > -Infinity PASSED! +-Infinity > -Infinity PASSED! +-Infinity > 0 PASSED! +-Infinity > -Number.MAX_VALUE PASSED! +-Infinity > Number.MIN_VALUE PASSED! +'string' > 'string' PASSED! +'astring' > 'string' PASSED! +'strings' > 'stringy' PASSED! +'strings' > 'stringier' PASSED! +'string' > 'astring' PASSED! +'string' > 'strings' PASSED! +'string' > 'str' PASSED! +44 > 55 PASSED! +55 > 44 PASSED! +56.43 > 65.0 PASSED! +65.0 > 56.43 PASSED! +43247503.43 > 945540654.654 PASSED! +43247503.43>945540654.654 PASSED! +43247503.43> 945540654.654 PASSED! +43247503.43 > 945540654.654 PASSED! +-56.43 > 65.0 PASSED! +-56.43 > -65.0 PASSED! +-56.43 > -56.43 PASSED! +100 > 100 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..b519b81514d0b90c804e1188ad11296133ae9237 GIT binary patch literal 3950 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/output.txt new file mode 100644 index 000000000..d2d0ade89 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/output.txt @@ -0,0 +1,56 @@ +true <= false PASSED! +false <= true PASSED! +false <= false PASSED! +true <= true PASSED! +new Boolean(true) <= new Boolean(true) PASSED! +new Boolean(true) <= new Boolean(false) PASSED! +new Boolean(false) <= new Boolean(true) PASSED! +new Boolean(false) <= new Boolean(false) PASSED! +new MyObject(Infinity) <= new MyObject(Infinity) PASSED! +new MyObject(-Infinity) <= new MyObject(Infinity) PASSED! +new MyObject(-Infinity) <= new MyObject(-Infinity) PASSED! +new MyValueObject(false) <= new MyValueObject(true) PASSED! +new MyValueObject(true) <= new MyValueObject(true) PASSED! +new MyValueObject(false) <= new MyValueObject(false) PASSED! +new MyStringObject(false) <= new MyStringObject(true) PASSED! +new MyStringObject(true) <= new MyStringObject(true) PASSED! +new MyStringObject(false) <= new MyStringObject(false) PASSED! +Number.NaN <= Number.NaN PASSED! +0 <= Number.NaN PASSED! +Number.NaN <= 0 PASSED! +0 <= -0 PASSED! +-0 <= 0 PASSED! +Infinity <= 0 PASSED! +Infinity <= Number.MAX_VALUE PASSED! +Infinity <= Infinity PASSED! +0 <= Infinity PASSED! +Number.MAX_VALUE <= Infinity PASSED! +0 <= -Infinity PASSED! +Number.MAX_VALUE <= -Infinity PASSED! +-Infinity <= -Infinity PASSED! +-Infinity <= 0 PASSED! +-Infinity <= -Number.MAX_VALUE PASSED! +-Infinity <= Number.MIN_VALUE PASSED! +'string' <= 'string' PASSED! +'astring' <= 'string' PASSED! +'strings' <= 'stringy' PASSED! +'strings' <= 'stringier' PASSED! +'string' <= 'astring' PASSED! +'string' <= 'strings' PASSED! +'string' <= 'str' PASSED! +'string' <= undefined PASSED! +undefined <= 'string' PASSED! +6.9 <= undefined PASSED! +undefined <= 343 PASSED! +44 <= 55 PASSED! +55 <= 44 PASSED! +56.43 <= 65.0 PASSED! +65.0 <= 56.43 PASSED! +43247503.43 <= 945540654.654 PASSED! +43247503.43<=945540654.654 PASSED! +43247503.43<= 945540654.654 PASSED! +43247503.43 <= 945540654.654 PASSED! +-56.43 <= 65.0 PASSED! +-56.43 <= -65.0 PASSED! +100 <= 100 PASSED! +-56.43 <= -56.43 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..259004edac239bcaf05617cbee5749b20993a8b7 GIT binary patch literal 4064 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 false", true, true >= false ); + array[item++] = Assert.expectEq( "false >= true", false, false >= true ); + array[item++] = Assert.expectEq( "false >= false", true, false >= false ); + array[item++] = Assert.expectEq( "true >= true", true, true >= true ); + + array[item++] = Assert.expectEq( "new Boolean(true) >= new Boolean(true)", true, new Boolean(true) >= new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) >= new Boolean(false)", true, new Boolean(true) >= new Boolean(false) ); + array[item++] = Assert.expectEq( "new Boolean(false) >= new Boolean(true)", false, new Boolean(false) >= new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) >= new Boolean(false)", true, new Boolean(false) >= new Boolean(false) ); + + array[item++] = Assert.expectEq( "new MyObject(Infinity) >= new MyObject(Infinity)", true, new MyObject( Number.POSITIVE_INFINITY ) >= new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) >= new MyObject(Infinity)", false, new MyObject( Number.NEGATIVE_INFINITY ) >= new MyObject( Number.POSITIVE_INFINITY) ); + array[item++] = Assert.expectEq( "new MyObject(-Infinity) >= new MyObject(-Infinity)", true, new MyObject( Number.NEGATIVE_INFINITY ) >= new MyObject( Number.NEGATIVE_INFINITY) ); + + array[item++] = Assert.expectEq( "new MyValueObject(false) >= new MyValueObject(true)", false, new MyValueObject(false) >= new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(true) >= new MyValueObject(true)", true, new MyValueObject(true) >= new MyValueObject(true) ); + array[item++] = Assert.expectEq( "new MyValueObject(false) >= new MyValueObject(false)", true, new MyValueObject(false) >= new MyValueObject(false) ); + + array[item++] = Assert.expectEq( "new MyStringObject(false) >= new MyStringObject(true)", false, new MyStringObject(false) >= new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(true) >= new MyStringObject(true)", true, new MyStringObject(true) >= new MyStringObject(true) ); + array[item++] = Assert.expectEq( "new MyStringObject(false) >= new MyStringObject(false)", true, new MyStringObject(false) >= new MyStringObject(false) ); + + array[item++] = Assert.expectEq( "Number.NaN >= Number.NaN", false, Number.NaN >= Number.NaN ); + array[item++] = Assert.expectEq( "0 >= Number.NaN", false, 0 >= Number.NaN ); + array[item++] = Assert.expectEq( "Number.NaN >= 0", false, Number.NaN >= 0 ); + + array[item++] = Assert.expectEq( "0 >= -0", true, 0 >= -0 ); + array[item++] = Assert.expectEq( "-0 >= 0", true, -0 >= 0 ); + + array[item++] = Assert.expectEq( "Infinity >= 0", true, Number.POSITIVE_INFINITY >= 0 ); + array[item++] = Assert.expectEq( "Infinity >= Number.MAX_VALUE", true, Number.POSITIVE_INFINITY >= Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Infinity >= Infinity", true, Number.POSITIVE_INFINITY >= Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 >= Infinity", false, 0 >= Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE >= Infinity", false, Number.MAX_VALUE >= Number.POSITIVE_INFINITY ); + + array[item++] = Assert.expectEq( "0 >= -Infinity", true, 0 >= Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.MAX_VALUE >= -Infinity", true, Number.MAX_VALUE >= Number.NEGATIVE_INFINITY ); + array[item++] = Assert.expectEq( "-Infinity >= -Infinity", true, Number.NEGATIVE_INFINITY >= Number.NEGATIVE_INFINITY ); + + array[item++] = Assert.expectEq( "-Infinity >= 0", false, Number.NEGATIVE_INFINITY >= 0 ); + array[item++] = Assert.expectEq( "-Infinity >= -Number.MAX_VALUE", false, Number.NEGATIVE_INFINITY >= -Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "-Infinity >= Number.MIN_VALUE", false, Number.NEGATIVE_INFINITY >= Number.MIN_VALUE ); + + array[item++] = Assert.expectEq( "'string' >= 'string'", true, 'string' >= 'string' ); + array[item++] = Assert.expectEq( "'astring' >= 'string'", false, 'astring' >= 'string' ); + array[item++] = Assert.expectEq( "'strings' >= 'stringy'", false, 'strings' >= 'stringy' ); + array[item++] = Assert.expectEq( "'strings' >= 'stringier'", true, 'strings' >= 'stringier' ); + array[item++] = Assert.expectEq( "'string' >= 'astring'", true, 'string' >= 'astring' ); + array[item++] = Assert.expectEq( "'string' >= 'strings'", false, 'string' >= 'strings' ); + array[item++] = Assert.expectEq( "'string' >= 'str'", true, 'string' >= 'str' ); + + array[item++] = Assert.expectEq( "'string' >= undefined", false, 'string' >= undefined ); + array[item++] = Assert.expectEq( "undefined >= 'string'", false, undefined >= 'string' ); + array[item++] = Assert.expectEq( "6.9 >= undefined", false, 6.9 >= undefined ); + array[item++] = Assert.expectEq( "undefined >= 343", false, undefined >= 343); + + array[item++] = Assert.expectEq( "44 >= 55", false, 44 >= 55 ); + array[item++] = Assert.expectEq( "55 >= 44", true, 55 >= 44 ); + array[item++] = Assert.expectEq( "56.43 >= 65.0", false, 56.43 >= 65.0 ); + array[item++] = Assert.expectEq( "65.0 >= 56.43", true, 65.0 >= 56.43 ); + array[item++] = Assert.expectEq( "43247503.43 >= 945540654.654", false, 43247503.43 >= 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43>=945540654.654", false, 43247503.43>=945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43>= 945540654.654", false, 43247503.43>= 945540654.654 ); + array[item++] = Assert.expectEq( "43247503.43 >= 945540654.654", false, 43247503.43 >= 945540654.654 ); + array[item++] = Assert.expectEq( "-56.43 >= 65.0", false, -56.43 >= 65.0 ); + array[item++] = Assert.expectEq( "-56.43 >= -65.0", true, -56.43 >= -65.0 ); + array[item++] = Assert.expectEq( "100 >= 100", true, 100 >= 100 ); + array[item++] = Assert.expectEq( "-56.43 >= -56.43", true, -56.43 >= -56.43 ); + + + return ( array ); +} +function MyObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + //this.toString = new Function( "return this.value +''" ); + this.valueOf = function(){return this.value}; + this.toString = function(){return this.value+''}; +} +function MyValueObject(value) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} +function MyStringObject(value) { + this.value = value; + //this.toString = new Function( "return this.value +''" ); + this.toString = function(){return this.value+''}; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/output.txt new file mode 100644 index 000000000..ef9d61621 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/output.txt @@ -0,0 +1,56 @@ +true >= false PASSED! +false >= true PASSED! +false >= false PASSED! +true >= true PASSED! +new Boolean(true) >= new Boolean(true) PASSED! +new Boolean(true) >= new Boolean(false) PASSED! +new Boolean(false) >= new Boolean(true) PASSED! +new Boolean(false) >= new Boolean(false) PASSED! +new MyObject(Infinity) >= new MyObject(Infinity) PASSED! +new MyObject(-Infinity) >= new MyObject(Infinity) PASSED! +new MyObject(-Infinity) >= new MyObject(-Infinity) PASSED! +new MyValueObject(false) >= new MyValueObject(true) PASSED! +new MyValueObject(true) >= new MyValueObject(true) PASSED! +new MyValueObject(false) >= new MyValueObject(false) PASSED! +new MyStringObject(false) >= new MyStringObject(true) PASSED! +new MyStringObject(true) >= new MyStringObject(true) PASSED! +new MyStringObject(false) >= new MyStringObject(false) PASSED! +Number.NaN >= Number.NaN PASSED! +0 >= Number.NaN PASSED! +Number.NaN >= 0 PASSED! +0 >= -0 PASSED! +-0 >= 0 PASSED! +Infinity >= 0 PASSED! +Infinity >= Number.MAX_VALUE PASSED! +Infinity >= Infinity PASSED! +0 >= Infinity PASSED! +Number.MAX_VALUE >= Infinity PASSED! +0 >= -Infinity PASSED! +Number.MAX_VALUE >= -Infinity PASSED! +-Infinity >= -Infinity PASSED! +-Infinity >= 0 PASSED! +-Infinity >= -Number.MAX_VALUE PASSED! +-Infinity >= Number.MIN_VALUE PASSED! +'string' >= 'string' PASSED! +'astring' >= 'string' PASSED! +'strings' >= 'stringy' PASSED! +'strings' >= 'stringier' PASSED! +'string' >= 'astring' PASSED! +'string' >= 'strings' PASSED! +'string' >= 'str' PASSED! +'string' >= undefined PASSED! +undefined >= 'string' PASSED! +6.9 >= undefined PASSED! +undefined >= 343 PASSED! +44 >= 55 PASSED! +55 >= 44 PASSED! +56.43 >= 65.0 PASSED! +65.0 >= 56.43 PASSED! +43247503.43 >= 945540654.654 PASSED! +43247503.43>=945540654.654 PASSED! +43247503.43>= 945540654.654 PASSED! +43247503.43 >= 945540654.654 PASSED! +-56.43 >= 65.0 PASSED! +-56.43 >= -65.0 PASSED! +100 >= 100 PASSED! +-56.43 >= -56.43 PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4354891502c6c80531fa579ee293f31cddedcf32 GIT binary patch literal 4066 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 U*n6*;9ed4xZZ3fE|4B5U|5ZfN{{R30 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_4/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/Test.as new file mode 100644 index 000000000..946c17c10 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/Test.as @@ -0,0 +1,216 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; + +// var SECTION = "11.8.7"; +// var VERSION = "ECMA_1"; +// var TITLE = "The in operator"; + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + var Array_One = new Array(0,1,2,3); + + + + array[item++] = Assert.expectEq( + "0 in Array_One", + true, + 0 in Array_One); + + array[item++] = Assert.expectEq( + "1 in Array_One", + true, + 1 in Array_One); + + array[item++] = Assert.expectEq( + "2 in Array_One", + true, + 2 in Array_One); + + array[item++] = Assert.expectEq( + "3 in Array_One", + true, + 3 in Array_One); + + + + array[item++] = Assert.expectEq( + "4 in Array_One", + false, + 4 in Array_One); + + var Array_Two = new Array('z','y','x','w'); + + array[item++] = Assert.expectEq( + "0 in Array_Two", + true, + 0 in Array_Two); + + array[item++] = Assert.expectEq( + "1 in Array_Two", + true, + 1 in Array_Two); + + array[item++] = Assert.expectEq( + "2 in Array_Two", + true, + 2 in Array_Two); + + array[item++] = Assert.expectEq( + "3 in Array_Two", + true, + 3 in Array_Two); + + + + array[item++] = Assert.expectEq( + "4 in Array_Two", + false, + 4 in Array_Two); + + array[item++] = Assert.expectEq( + "a in Array_Two", + false, + 'a' in Array_Two); + + array[item++] = Assert.expectEq( + "length in Array_Two", + true, + "length" in Array_Two); + + var myobj = {obj1:"string1",obj2:"string2"} + + array[item++] = Assert.expectEq( + "obj1 in myobj", + true, + "obj1" in myobj); + + array[item++] = Assert.expectEq( + "obj2 in myobj", + true, + "obj2" in myobj); + + function myfunc():String{ + return "Hi!!!"} + + MyObject2 = {MyNumber:10,MyString:'string',MyBoolean:true,myarr:[1,2,3],myfuncvar:myfunc} + + array[item++] = Assert.expectEq( + "MyNumber in MyObject2", + true, + "MyNumber" in MyObject2); + + array[item++] = Assert.expectEq( + "MyString in MyObject2", + true, + "MyString" in MyObject2); + + array[item++] = Assert.expectEq( + "MyBoolean in MyObject2", + true, + "MyBoolean" in MyObject2); + + + + array[item++] = Assert.expectEq( + "myarr in MyObject2", + true, + "myarr" in MyObject2); + + array[item++] = Assert.expectEq( + "myfuncvar in MyObject2", + true, + "myfuncvar" in MyObject2); + + + var mystring1 = new String("string1"); + + array[item++] = Assert.expectEq( + "length in mystring1", + true, + "length" in mystring1); + + var mystring2 = "string2"; + + + array[item++] = Assert.expectEq( + "length in mystring2", + true, + "length" in mystring2); + + MyObject3 = {MyNumber1:10,MyString1:'string',MyBoolean1:true,myarr1:[1,2,3],myfuncvar1:myfunc} + + delete MyObject3.MyNumber1; + + + array[item++] = Assert.expectEq( + "MyNumber1 in MyObject3", + false, + "MyNumber1" in MyObject3); + + + delete MyObject3.myfuncvar1; + + array[item++] = Assert.expectEq( + "myfuncvar1 in MyObject3", + false, + "myfuncvar1" in MyObject3); + + MyObject3.MyNumber1 = undefined; + + array[item++] = Assert.expectEq( + "MyNumber1 in MyObject3", + true, + "MyNumber1" in MyObject3); + + myarr3 = [0,1,2,3]; + + delete myarr3[3]; + + array[item++] = Assert.expectEq( + "3 in myarr3", + false, + 3 in myarr3); + + myarr3[3] = undefined; + + array[item++] = Assert.expectEq( + "3 in myarr3", + true, + 3 in myarr3); + + + + array[item++] = Assert.expectEq( + "PI in Math", + true, + "PI" in Math); + + array[item++] = Assert.expectEq( + "myproperty in Math", + false, + "myproperty" in Math); + + array[item++] = Assert.expectEq( + "myproperty in Object", + false, + "myproperty" in Object) + + + + + + + return ( array ); +} + diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/output.txt new file mode 100644 index 000000000..d8bbf3637 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/output.txt @@ -0,0 +1,29 @@ +0 in Array_One PASSED! +1 in Array_One PASSED! +2 in Array_One PASSED! +3 in Array_One PASSED! +4 in Array_One PASSED! +0 in Array_Two PASSED! +1 in Array_Two PASSED! +2 in Array_Two PASSED! +3 in Array_Two PASSED! +4 in Array_Two PASSED! +a in Array_Two PASSED! +length in Array_Two PASSED! +obj1 in myobj PASSED! +obj2 in myobj PASSED! +MyNumber in MyObject2 PASSED! +MyString in MyObject2 PASSED! +MyBoolean in MyObject2 PASSED! +myarr in MyObject2 PASSED! +myfuncvar in MyObject2 PASSED! +length in mystring1 PASSED! +length in mystring2 PASSED! +MyNumber1 in MyObject3 PASSED! +myfuncvar1 in MyObject3 PASSED! +MyNumber1 in MyObject3 PASSED! +3 in myarr3 PASSED! +3 in myarr3 PASSED! +PI in Math PASSED! +myproperty in Math PASSED! +myproperty in Object PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..7e8de8477b6bd2195300b376bcbcd489f71b1aa6 GIT binary patch literal 3438 zcmV-!4UzIgS5qc+7ytlx+J%_eR~uP=$M3D}*42h2gv9QmtriU~kPx2sm~k_vK{B{) zM6-D7hE|m*f!tacsRX7clbIoLGFz5T;?7LZ#w6$DWghY{c}vd8Qy%gZ5U1^@yyPW0 zdCWiH{BD(2qjLtI;@S2P6{$!*Qp z^lq+lkk^js{nBC1Sj^`RJeg8qTH7t@#(9~i=cR;dVCEteO!%v`<_cq61`l-3qDHWEv+Vy9zLa$)6O zVyRcL(=o-4XY9@?vYkzQt6p`YTrQQJ2QUKWx>2d-P3g|P)cXtfdOj*yT~PM&C0)yJ zJJ%K#KUlbvxVN&g+4pU0ab(o+Oc<1hFlXPHn{zL$-`TpKSlvvlucy|73+25k+Y?p= zbBdKHSLx>CwS)!uS?@ZXp7lgBv7T66w29EVku}OjG4lrISYKGZVFowX+(EZnnePaJCbPN(xhVtpm~*m4IR80B2{_zm@5S<|h&TWjweH5)zglsj7N zC^uUtSIapYHX0Q>4_kFO4zzN`s7Hfo&1e;);@UGzw)7TRLA0hwT+WS+jfo58vUWUH z-}d%mfMpR~*qDvRW3hLmdNr3fb45=~$rTj~{v=g2JTslecxQ38vv|Fuh(E)}_!&NG z54m|%Y7fbZ@y_CGXYqPxQR^sTtv7EJ_ssnct7O{*Sd25IVr|qJR*2UNaX0fYN#PiB ztQ2pS=>21RAI9bT$E($XZj>QoZ+FSo15)4jV&PaTmucZR3;X|2EB7@dEL<~CUqjzv z4K|~6nEh7BPO=%l!`#;O!g0NuU2O4Yk7jA3c{8-pq!~xE88ebq^^Bug-Au44Xs>xT z)FL|U6wY-cn=2Z-cBonBtlbipcdV^gux9RaYbydvp|1z!(g7TA#|@XGWeRk9?K(t_ z&9aa)jRI{hG}@ec(V9caZXaz9OEVXD*+;T*$Zp=A1WT6Sc-Bm~p~~(h`=qw3@~sq2 zqpZQXerVX1V26LP1kV8IY+2fXeP$YxefT+6wN<4pTeJpH%;rm)DcJ=F+x&{bcCKK; zi7sZ@SbCvkE+;bd%YZ0wpJ65))I@Gi6zB4??6*A48^{m zrnSmk+lBDXglNLh8IpY(k{m3IXQ?c0p5Gx`#x?~!W|XGg-EjpBby6KZQa@qE3fw9N zwFe2v-XIRj{Uqqk&k}r{;I9$YPB5iBy$LFT{um2%SfGCfNkE`cfes2ZCD1=--Tezp+ zHlgE$P7r#H&?!Ry4y-QuiuK@vR~CBXhv#rT!93yw0b5Tq&a$@uu5;J|1l$%ufPeKL zU~K*G`vtX$?TwHKQ7 z92&sAK3)p=1k&dd<=#LLY8b^KphCDGVh-Q|XrO`zVP(FBhv01*#>0r92p&N)dIygp ziYDKnyg0dp|qnB#c$8_UpXr^4}Hx*kq`6*JJ-NkKBuZDb|eQ+KBz zhYb{lgky#$ybNEkQCjG)DIK^88v89^6-z8wj3Em{Oxl*KNzsEa@^M8bTFmVlOIsS7RX z6439DhlLhRfF?4TU_DkB)g?8dCaoR|m-R#^puc1HS+Mmo=w(^%Qk$&HKrh?Y*c=cmIr7e+xGZuI` ztXKC!*zJh=Fg;@j^+8ad?CZk%bRV!g5%p1n^#kjd{askU?g#dhi29_#_5#~0_jX}> z^~Yz@cN5AVkDNr7C}_33?})9slewlWCH zpd4f~wQ*9AFN=bD5JVYUB-^48h(dB`VrN!0V9c{H=6ex!zd7c)#+Zk+Sqn_hKE2+h zBOyHmv7e5sMtatc+z*la<$fmkS{FgT-VcIL$JJazFaUx9c>o0IcUkGWRl2Mk&<9vm zkycfMpd6G3Cw6W$&bbEyv)-_*=^J7GX{<}2L46Pc701JT`i3272m%esLzaX!qEWuA z9ny!GHqz1#13N4acVUP1VPH!U^&tIqn;ijmL>}qFj_4!6mdDjfgB=BSR37cZj_RYp znvA_^vsZw8x%5Au@&;ndo?CPWr{w#I} zu1$;`PU$Rmwt}D}FweVZaKWT$Ed72gy%>Ae3IYsQo5+7e}$HsoDPEymp}rsSn_; z14{tLI?p-~es=*)c*hYs zgR3<51i>{q8N0?52A9Xld+0fXSswTiSxnyt5fgH$Rc<>48O#ds32>i5F1wcekV~fc zWqkEo6s?OJ@Nhtz>@l^4cpg1K@X&b3R)WmKWbCqPS?gg?&eM-hpMT|r9)RgbIN)cd z$F)=S1wOqvWv(g9^#dFjY`DI_r?nTS>fZwK!a}S#kJX=IR@#1Yo_c~|;;Fz3qVp`a zojQ-ySmO|Kv`pi5le1+~>L!;c3Su8DnA-2^BM#MDLk>e z2V+5Ou52%Roc1(U_D7HK$i56_AJ1cM>?{Tkrm9&VZ_D13QE2TiW2xkQ&y8c81l6 zHoP;UzN3xojH;8`=*|^Y)voL)>a?anuz*N-!90s8&ofd@{SqfX!If9FFuDkfr^z(; zoV}^kU*LcbmZPTr5=YL{`tMR1-W#-Li=Bs2+Q??Z!fA4k1ADN|zTajKwb^rR_Wm~e(>D7+oBh)^ z`(T?r-)0|bvlrUz!#vLmupG{_*_sE=2JqLCMeg}m=inUanC8)rX)ZnDM)tjICHAua QGFX2)z73iG2Qmad9*WAfga7~l literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_8_7/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/Test.as new file mode 100644 index 000000000..e7e2f12ed --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/Test.as @@ -0,0 +1,120 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.9.1"; +// var VERSION = "ECMA_1"; + var BUGNUMBER="77391"; + + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // type x and type y are the same. if type x is undefined or null, return true + + array[item++] = Assert.expectEq( "void 0 = void 0", true, void 0 == void 0 ); + array[item++] = Assert.expectEq( "null == null", true, null == null ); + + // if x is NaN, return false. if y is NaN, return false. + + array[item++] = Assert.expectEq( "NaN == NaN", false, Number.NaN == Number.NaN ); + array[item++] = Assert.expectEq( "NaN == 0", false, Number.NaN == 0 ); + array[item++] = Assert.expectEq( "0 == NaN", false, 0 == Number.NaN ); + array[item++] = Assert.expectEq( "NaN == Infinity", false, Number.NaN == Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Infinity == NaN", false, Number.POSITIVE_INFINITY == Number.NaN ); + + // if x is the same number value as y, return true. + + array[item++] = Assert.expectEq( "Number.MAX_VALUE == Number.MAX_VALUE", true, Number.MAX_VALUE == Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE == Number.MIN_VALUE", true, Number.MIN_VALUE == Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY", true, Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY", true, Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY ); + + // if xis 0 and y is -0, return true. if x is -0 and y is 0, return true. + + array[item++] = Assert.expectEq( "0 == 0", true, 0 == 0 ); + array[item++] = Assert.expectEq( "0 == -0", true, 0 == -0 ); + array[item++] = Assert.expectEq( "-0 == 0", true, -0 == 0 ); + array[item++] = Assert.expectEq( "-0 == -0", true, -0 == -0 ); + + // return false. + + array[item++] = Assert.expectEq( "0.9 == 1", false, 0.9 == 1 ); + array[item++] = Assert.expectEq( "0.999999 == 1", false, 0.999999 == 1 ); + array[item++] = Assert.expectEq( "0.9999999999 == 1", false, 0.9999999999 == 1 ); + array[item++] = Assert.expectEq( "0.9999999999999 == 1", false, 0.9999999999999 == 1 ); + + // type x and type y are the same type, but not numbers. + + + // x and y are strings. return true if x and y are exactly the same sequence of characters. + // otherwise, return false. + + array[item++] = Assert.expectEq( "'hello' == 'hello'", true, "hello" == "hello" ); + + // x and y are booleans. return true if both are true or both are false. + + array[item++] = Assert.expectEq( "true == true", true, true == true ); + array[item++] = Assert.expectEq( "false == false", true, false == false ); + array[item++] = Assert.expectEq( "true == false", false, true == false ); + array[item++] = Assert.expectEq( "false == true", false, false == true ); + + // return true if x and y refer to the same object. otherwise return false. + + array[item++] = Assert.expectEq( "new MyObject(true) == new MyObject(true)", false, new MyObject(true) == new MyObject(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) == new Boolean(true)", true, new Boolean(true) == new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) == new Boolean(false)", true, new Boolean(false) == new Boolean(false) ); + + x = new MyObject(true); y = x; z = x; + array[item++] = Assert.expectEq( "x = new MyObject(true); y = x; z = x; z == y", true, z == y ); + x = new MyObject(false); y = x; z = x; + array[item++] = Assert.expectEq( "x = new MyObject(false); y = x; z = x; z == y", true, z == y ); + x = new Boolean(true); y = x; z = x; + array[item++] = Assert.expectEq( "x = new Boolean(true); y = x; z = x; z == y", true, z == y ); + x = new Boolean(false); y = x; z = x; + array[item++] = Assert.expectEq( "x = new Boolean(false); y = x; z = x; z == y", true, z == y ); + + array[item++] = Assert.expectEq( "new Boolean(true) == new Boolean(true)", true, new Boolean(true) == new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) == new Boolean(false)", true, new Boolean(false) == new Boolean(false) ); + + // if x is null and y is undefined, return true. if x is undefined and y is null return true. + + array[item++] = Assert.expectEq( "null == void 0", true, null == void 0 ); + array[item++] = Assert.expectEq( "void 0 == null", true, void 0 == null ); + + // if type(x) is Number and type(y) is string, return the result of the comparison x == ToNumber(y). + + array[item++] = Assert.expectEq( "1 == '1'", true, 1 == '1' ); + array[item++] = Assert.expectEq( "255 == '0xff'", true, 255 == '0xff' ); + array[item++] = Assert.expectEq( "0 == '\\r'", true, 0 == "\r" ); + array[item++] = Assert.expectEq( "1e19 == '1e19'", true, 1e19 == "1e19" ); + + + array[item++] = Assert.expectEq( "new Boolean(true) == true", true, true == new Boolean(true) ); + array[item++] = Assert.expectEq( "new MyObject(true) == true", true, true == new MyObject(true) ); + + array[item++] = Assert.expectEq( "new Boolean(false) == false", true, new Boolean(false) == false ); + array[item++] = Assert.expectEq( "new MyObject(false) == false", true, new MyObject(false) == false ); + + array[item++] = Assert.expectEq( "true == new Boolean(true)", true, true == new Boolean(true) ); + array[item++] = Assert.expectEq( "true == new MyObject(true)", true, true == new MyObject(true) ); + + array[item++] = Assert.expectEq( "false == new Boolean(false)", true, false == new Boolean(false) ); + array[item++] = Assert.expectEq( "false == new MyObject(false)", true, false == new MyObject(false) ); + + return ( array ); +} + +function MyObject( value ) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/output.txt new file mode 100644 index 000000000..c3dee373b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/output.txt @@ -0,0 +1,47 @@ +void 0 = void 0 PASSED! +null == null PASSED! +NaN == NaN PASSED! +NaN == 0 PASSED! +0 == NaN PASSED! +NaN == Infinity PASSED! +Infinity == NaN PASSED! +Number.MAX_VALUE == Number.MAX_VALUE PASSED! +Number.MIN_VALUE == Number.MIN_VALUE PASSED! +Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY PASSED! +0 == 0 PASSED! +0 == -0 PASSED! +-0 == 0 PASSED! +-0 == -0 PASSED! +0.9 == 1 PASSED! +0.999999 == 1 PASSED! +0.9999999999 == 1 PASSED! +0.9999999999999 == 1 PASSED! +'hello' == 'hello' PASSED! +true == true PASSED! +false == false PASSED! +true == false PASSED! +false == true PASSED! +new MyObject(true) == new MyObject(true) PASSED! +new Boolean(true) == new Boolean(true) PASSED! +new Boolean(false) == new Boolean(false) PASSED! +x = new MyObject(true); y = x; z = x; z == y PASSED! +x = new MyObject(false); y = x; z = x; z == y PASSED! +x = new Boolean(true); y = x; z = x; z == y PASSED! +x = new Boolean(false); y = x; z = x; z == y PASSED! +new Boolean(true) == new Boolean(true) PASSED! +new Boolean(false) == new Boolean(false) PASSED! +null == void 0 PASSED! +void 0 == null PASSED! +1 == '1' PASSED! +255 == '0xff' PASSED! +0 == '\r' PASSED! +1e19 == '1e19' PASSED! +new Boolean(true) == true PASSED! +new MyObject(true) == true PASSED! +new Boolean(false) == false PASSED! +new MyObject(false) == false PASSED! +true == new Boolean(true) PASSED! +true == new MyObject(true) PASSED! +false == new Boolean(false) PASSED! +false == new MyObject(false) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..b38fcea783d9bf0f461790533d9bc2d1ac60c6d5 GIT binary patch literal 3844 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 GgNZ8oLX?RB literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/Test.as new file mode 100644 index 000000000..2f7e6a21d --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/Test.as @@ -0,0 +1,119 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.9.2"; +// var VERSION = "ECMA_1"; + var BUGNUMBER="77391"; + + var testcases = getTestCases(); + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // type x and type y are the same. if type x is undefined or null, return true + + array[item++] = Assert.expectEq( "void 0 == void 0", false, void 0 != void 0 ); + array[item++] = Assert.expectEq( "null == null", false, null != null ); + + // if x is NaN, return false. if y is NaN, return false. + + array[item++] = Assert.expectEq( "NaN != NaN", true, Number.NaN != Number.NaN ); + array[item++] = Assert.expectEq( "NaN != 0", true, Number.NaN != 0 ); + array[item++] = Assert.expectEq( "0 != NaN", true, 0 != Number.NaN ); + array[item++] = Assert.expectEq( "NaN != Infinity", true, Number.NaN != Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Infinity != NaN", true, Number.POSITIVE_INFINITY != Number.NaN ); + + // if x is the same number value as y, return true. + + array[item++] = Assert.expectEq( "Number.MAX_VALUE != Number.MAX_VALUE", false, Number.MAX_VALUE != Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE != Number.MIN_VALUE", false, Number.MIN_VALUE != Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY != Number.POSITIVE_INFINITY", false, Number.POSITIVE_INFINITY != Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY != Number.NEGATIVE_INFINITY", false, Number.NEGATIVE_INFINITY != Number.NEGATIVE_INFINITY ); + + // if xis 0 and y is -0, return true. if x is -0 and y is 0, return true. + + array[item++] = Assert.expectEq( "0 != 0", false, 0 != 0 ); + array[item++] = Assert.expectEq( "0 != -0", false, 0 != -0 ); + array[item++] = Assert.expectEq( "-0 != 0", false, -0 != 0 ); + array[item++] = Assert.expectEq( "-0 != -0", false, -0 != -0 ); + + // return false. + + array[item++] = Assert.expectEq( "0.9 != 1", true, 0.9 != 1 ); + array[item++] = Assert.expectEq( "0.999999 != 1", true, 0.999999 != 1 ); + array[item++] = Assert.expectEq( "0.9999999999 != 1", true, 0.9999999999 != 1 ); + array[item++] = Assert.expectEq( "0.9999999999999 != 1", true, 0.9999999999999 != 1 ); + + // type x and type y are the same type, but not numbers. + + + // x and y are strings. return true if x and y are exactly the same sequence of characters. + // otherwise, return false. + + array[item++] = Assert.expectEq( "'hello' != 'hello'", false, "hello" != "hello" ); + + // x and y are booleans. return true if both are true or both are false. + + array[item++] = Assert.expectEq( "true != true", false, true != true ); + array[item++] = Assert.expectEq( "false != false", false, false != false ); + array[item++] = Assert.expectEq( "true != false", true, true != false ); + array[item++] = Assert.expectEq( "false != true", true, false != true ); + + // return true if x and y refer to the same object. otherwise return false. + + array[item++] = Assert.expectEq( "new MyObject(true) != new MyObject(true)", true, new MyObject(true) != new MyObject(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) != new Boolean(true)", false, new Boolean(true) != new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) != new Boolean(false)", false, new Boolean(false) != new Boolean(false) ); + + x = new MyObject(true); y = x; z = x; + array[item++] = Assert.expectEq( "x = new MyObject(true); y = x; z = x; z != y", false, z != y ); + x = new MyObject(false); y = x; z = x; + array[item++] = Assert.expectEq( "x = new MyObject(false); y = x; z = x; z != y", false, z != y ); + x = new Boolean(true); y = x; z = x; + array[item++] = Assert.expectEq( "x = new Boolean(true); y = x; z = x; z != y", false, z != y); + x = new Boolean(false); y = x; z = x; + array[item++] = Assert.expectEq( "x = new Boolean(false); y = x; z = x; z != y", false, z != y ); + + array[item++] = Assert.expectEq( "new Boolean(true) != new Boolean(true)", false, new Boolean(true) != new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) != new Boolean(false)", false, new Boolean(false) != new Boolean(false) ); + + // if x is null and y is undefined, return true. if x is undefined and y is null return true. + + array[item++] = Assert.expectEq( "null != void 0", false, null != void 0 ); + array[item++] = Assert.expectEq( "void 0 != null", false, void 0 != null ); + + // if type(x) is Number and type(y) is string, return the result of the comparison x != ToNumber(y). + + array[item++] = Assert.expectEq( "1 != '1'", false, 1 != '1' ); + array[item++] = Assert.expectEq( "255 != '0xff'", false, 255 != '0xff' ); + array[item++] = Assert.expectEq( "0 != '\\r'", false, 0 != "\r" ); + array[item++] = Assert.expectEq( "1e19 != '1e19'", false, 1e19 != "1e19" ); + + + array[item++] = Assert.expectEq( "new Boolean(true) != true", false, true != new Boolean(true) ); + array[item++] = Assert.expectEq( "new MyObject(true) != true", false, true != new MyObject(true) ); + + array[item++] = Assert.expectEq( "new Boolean(false) != false", false, new Boolean(false) != false ); + array[item++] = Assert.expectEq( "new MyObject(false) != false", false, new MyObject(false) != false ); + + array[item++] = Assert.expectEq( "true != new Boolean(true)", false, true != new Boolean(true) ); + array[item++] = Assert.expectEq( "true != new MyObject(true)", false, true != new MyObject(true) ); + + array[item++] = Assert.expectEq( "false != new Boolean(false)", false, false != new Boolean(false) ); + array[item++] = Assert.expectEq( "false != new MyObject(false)", false, false != new MyObject(false) ); + + return ( array ); +} + +function MyObject( value ) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/output.txt new file mode 100644 index 000000000..1062a6431 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/output.txt @@ -0,0 +1,47 @@ +void 0 == void 0 PASSED! +null == null PASSED! +NaN != NaN PASSED! +NaN != 0 PASSED! +0 != NaN PASSED! +NaN != Infinity PASSED! +Infinity != NaN PASSED! +Number.MAX_VALUE != Number.MAX_VALUE PASSED! +Number.MIN_VALUE != Number.MIN_VALUE PASSED! +Number.POSITIVE_INFINITY != Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY != Number.NEGATIVE_INFINITY PASSED! +0 != 0 PASSED! +0 != -0 PASSED! +-0 != 0 PASSED! +-0 != -0 PASSED! +0.9 != 1 PASSED! +0.999999 != 1 PASSED! +0.9999999999 != 1 PASSED! +0.9999999999999 != 1 PASSED! +'hello' != 'hello' PASSED! +true != true PASSED! +false != false PASSED! +true != false PASSED! +false != true PASSED! +new MyObject(true) != new MyObject(true) PASSED! +new Boolean(true) != new Boolean(true) PASSED! +new Boolean(false) != new Boolean(false) PASSED! +x = new MyObject(true); y = x; z = x; z != y PASSED! +x = new MyObject(false); y = x; z = x; z != y PASSED! +x = new Boolean(true); y = x; z = x; z != y PASSED! +x = new Boolean(false); y = x; z = x; z != y PASSED! +new Boolean(true) != new Boolean(true) PASSED! +new Boolean(false) != new Boolean(false) PASSED! +null != void 0 PASSED! +void 0 != null PASSED! +1 != '1' PASSED! +255 != '0xff' PASSED! +0 != '\r' PASSED! +1e19 != '1e19' PASSED! +new Boolean(true) != true PASSED! +new MyObject(true) != true PASSED! +new Boolean(false) != false PASSED! +new MyObject(false) != false PASSED! +true != new Boolean(true) PASSED! +true != new MyObject(true) PASSED! +false != new Boolean(false) PASSED! +false != new MyObject(false) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..18c66e7289b02902b84a614427f6d5785b8a4fea GIT binary patch literal 3845 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 HHqW57bl`PL literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_2/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/Test.as new file mode 100644 index 000000000..94660d046 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/Test.as @@ -0,0 +1,116 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "11.9.3"; +// var VERSION = "ECMA_1"; + var BUGNUMBER="77391"; + + var testcases = getTestCases(); + + + +function getTestCases() { + var array = new Array(); + var item = 0; + + // type x and type y are the same. if type x is undefined or null, return true + + array[item++] = Assert.expectEq( "void 0 = void 0", true, void 0 == void 0 ); + array[item++] = Assert.expectEq( "null == null", true, null == null ); + + // if x is NaN, return false. if y is NaN, return false. + + array[item++] = Assert.expectEq( "NaN == NaN", false, Number.NaN == Number.NaN ); + array[item++] = Assert.expectEq( "NaN == 0", false, Number.NaN == 0 ); + array[item++] = Assert.expectEq( "0 == NaN", false, 0 == Number.NaN ); + array[item++] = Assert.expectEq( "NaN == Infinity", false, Number.NaN == Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Infinity == NaN", false, Number.POSITIVE_INFINITY == Number.NaN ); + + // if x is the same number value as y, return true. + + array[item++] = Assert.expectEq( "Number.MAX_VALUE == Number.MAX_VALUE", true, Number.MAX_VALUE == Number.MAX_VALUE ); + array[item++] = Assert.expectEq( "Number.MIN_VALUE == Number.MIN_VALUE", true, Number.MIN_VALUE == Number.MIN_VALUE ); + array[item++] = Assert.expectEq( "Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY", true, Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY ); + array[item++] = Assert.expectEq( "Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY", true, Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY ); + + // if xis 0 and y is -0, return true. if x is -0 and y is 0, return true. + + array[item++] = Assert.expectEq( "0 == 0", true, 0 == 0 ); + array[item++] = Assert.expectEq( "0 == -0", true, 0 == -0 ); + array[item++] = Assert.expectEq( "-0 == 0", true, -0 == 0 ); + array[item++] = Assert.expectEq( "-0 == -0", true, -0 == -0 ); + + // return false. + + array[item++] = Assert.expectEq( "0.9 == 1", false, 0.9 == 1 ); + array[item++] = Assert.expectEq( "0.999999 == 1", false, 0.999999 == 1 ); + array[item++] = Assert.expectEq( "0.9999999999 == 1", false, 0.9999999999 == 1 ); + array[item++] = Assert.expectEq( "0.9999999999999 == 1", false, 0.9999999999999 == 1 ); + + // type x and type y are the same type, but not numbers. + + + // x and y are strings. return true if x and y are exactly the same sequence of characters. + // otherwise, return false. + + array[item++] = Assert.expectEq( "'hello' == 'hello'", true, "hello" == "hello" ); + + // x and y are booleans. return true if both are true or both are false. + + array[item++] = Assert.expectEq( "true == true", true, true == true ); + array[item++] = Assert.expectEq( "false == false", true, false == false ); + array[item++] = Assert.expectEq( "true == false", false, true == false ); + array[item++] = Assert.expectEq( "false == true", false, false == true ); + + // return true if x and y refer to the same object. otherwise return false. + + array[item++] = Assert.expectEq( "new MyObject(true) == new MyObject(true)", false, new MyObject(true) == new MyObject(true) ); + array[item++] = Assert.expectEq( "new Boolean(true) == new Boolean(true)", true, new Boolean(true) == new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) == new Boolean(false)", true, new Boolean(false) == new Boolean(false) ); + + array[item++] = Assert.expectEq( "x = new MyObject(true); y = x; z = x; z == y", true, (x = new MyObject(true), y = x, z = x, z == y) ); + array[item++] = Assert.expectEq( "x = new MyObject(false); y = x; z = x; z == y", true, (x = new MyObject(false), y = x, z = x, z == y) ); + array[item++] = Assert.expectEq( "x = new Boolean(true); y = x; z = x; z == y", true, (x = new Boolean(true), y = x, z = x, z == y) ); + array[item++] = Assert.expectEq( "x = new Boolean(false); y = x; z = x; z == y", true, (x = new Boolean(false), y = x, z = x, z == y) ); + + array[item++] = Assert.expectEq( "new Boolean(true) == new Boolean(true)", true, new Boolean(true) == new Boolean(true) ); + array[item++] = Assert.expectEq( "new Boolean(false) == new Boolean(false)", true, new Boolean(false) == new Boolean(false) ); + + // if x is null and y is undefined, return true. if x is undefined and y is null return true. + + array[item++] = Assert.expectEq( "null == void 0", true, null == void 0 ); + array[item++] = Assert.expectEq( "void 0 == null", true, void 0 == null ); + + // if type(x) is Number and type(y) is string, return the result of the comparison x == ToNumber(y). + + array[item++] = Assert.expectEq( "1 == '1'", true, 1 == '1' ); + array[item++] = Assert.expectEq( "255 == '0xff'", true, 255 == '0xff' ); + array[item++] = Assert.expectEq( "0 == '\\r'", true, 0 == "\r" ); + array[item++] = Assert.expectEq( "1e19 == '1e19'", true, 1e19 == "1e19" ); + + + array[item++] = Assert.expectEq( "new Boolean(true) == true", true, true == new Boolean(true) ); + array[item++] = Assert.expectEq( "new MyObject(true) == true", true, true == new MyObject(true) ); + + array[item++] = Assert.expectEq( "new Boolean(false) == false", true, new Boolean(false) == false ); + array[item++] = Assert.expectEq( "new MyObject(false) == false", true, new MyObject(false) == false ); + + array[item++] = Assert.expectEq( "true == new Boolean(true)", true, true == new Boolean(true) ); + array[item++] = Assert.expectEq( "true == new MyObject(true)", true, true == new MyObject(true) ); + + array[item++] = Assert.expectEq( "false == new Boolean(false)", true, false == new Boolean(false) ); + array[item++] = Assert.expectEq( "false == new MyObject(false)", true, false == new MyObject(false) ); + + return ( array ); +} + +function MyObject( value ) { + this.value = value; + //this.valueOf = new Function( "return this.value" ); + this.valueOf = function(){return this.value}; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/output.txt new file mode 100644 index 000000000..c3dee373b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/output.txt @@ -0,0 +1,47 @@ +void 0 = void 0 PASSED! +null == null PASSED! +NaN == NaN PASSED! +NaN == 0 PASSED! +0 == NaN PASSED! +NaN == Infinity PASSED! +Infinity == NaN PASSED! +Number.MAX_VALUE == Number.MAX_VALUE PASSED! +Number.MIN_VALUE == Number.MIN_VALUE PASSED! +Number.POSITIVE_INFINITY == Number.POSITIVE_INFINITY PASSED! +Number.NEGATIVE_INFINITY == Number.NEGATIVE_INFINITY PASSED! +0 == 0 PASSED! +0 == -0 PASSED! +-0 == 0 PASSED! +-0 == -0 PASSED! +0.9 == 1 PASSED! +0.999999 == 1 PASSED! +0.9999999999 == 1 PASSED! +0.9999999999999 == 1 PASSED! +'hello' == 'hello' PASSED! +true == true PASSED! +false == false PASSED! +true == false PASSED! +false == true PASSED! +new MyObject(true) == new MyObject(true) PASSED! +new Boolean(true) == new Boolean(true) PASSED! +new Boolean(false) == new Boolean(false) PASSED! +x = new MyObject(true); y = x; z = x; z == y PASSED! +x = new MyObject(false); y = x; z = x; z == y PASSED! +x = new Boolean(true); y = x; z = x; z == y PASSED! +x = new Boolean(false); y = x; z = x; z == y PASSED! +new Boolean(true) == new Boolean(true) PASSED! +new Boolean(false) == new Boolean(false) PASSED! +null == void 0 PASSED! +void 0 == null PASSED! +1 == '1' PASSED! +255 == '0xff' PASSED! +0 == '\r' PASSED! +1e19 == '1e19' PASSED! +new Boolean(true) == true PASSED! +new MyObject(true) == true PASSED! +new Boolean(false) == false PASSED! +new MyObject(false) == false PASSED! +true == new Boolean(true) PASSED! +true == new MyObject(true) PASSED! +false == new Boolean(false) PASSED! +false == new MyObject(false) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_3/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4fb0648df8f4fd89be0bff2da275ff21236ca644 GIT binary patch literal 3786 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/output.txt new file mode 100644 index 000000000..c88a0e4a3 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/output.txt @@ -0,0 +1,6 @@ +: if(undefined === null) PASSED! +: case(undefined === null) PASSED! +: f3(x); undefined === null PASSED! +: f4(array); undefined === null PASSED! +: f5(array); undefined === null PASSED! +: f6(array); undefined === null PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c0e2b2c4306553a53982387b12ff73bcc51008cd GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/e11_9_6_1/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/Test.as new file mode 100644 index 000000000..ac9da72e5 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/Test.as @@ -0,0 +1,106 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "instanceof-001"; +// var VERSION = "ECMA_2"; +// var TITLE = "instanceof" + + + var testcases = getTestCases(); + + function InstanceOf( object_1, object_2, expect, array, item ) { + result = object_1 instanceof object_2; + + array[item] = Assert.expectEq( + + "(" + object_1 + ") instanceof " + object_2, + expect, + result ); + } + +function getTestCases() { + var array = new Array(); + var item = 0; + + function Gen3(value) { + this.value = value; + this.generation = 3; + this.toString = function (){return "Gen" + this.generation+ " instance"}; + } + Gen3.name = 3; + var origPrototypeToString = Gen3.constructor.prototype.toString; + Gen3.constructor.prototype.toString = function(){return this.name+" object"}; + + function Gen2(value) { + this.value = value; + this.generation = 2; + } + Gen2.name = 2; + Gen2.prototype = new Gen3(); + + function Gen1(value) { + this.value = value; + this.generation = 1; + } + Gen1.name = 1; + Gen1.prototype = new Gen2(); + + function Gen0(value) { + this.value = value; + this.generation = 0; + } + Gen0.name = 0; + Gen0.prototype = new Gen1(); + + + function GenA(value) { + this.value = value; + this.generation = "A"; + this.toString = function (){return "instance of Gen" +this.generation}; + + } + GenA.prototype = new Gen0(); + GenA.name = "A"; + + function GenB(value) { + this.value = value; + this.generation = "B"; + this.toString = function (){ return "instance of Gen"+this.generation}; + } + GenB.name = "B" + //GenB.prototype = void 0; + + // RelationalExpression is not an object. + + InstanceOf( true, Boolean, true, array, item++ ); + InstanceOf( new Boolean(false), Boolean, true, array, item++ ); + + // Identifier is a function, prototype of Identifier is not an object + + // RelationalExpression.__proto__ == (but not ===) Identifier.prototype + InstanceOf( new Gen2(), Gen0, false, array, item++ ); + InstanceOf( new Gen2(), Gen1, false, array, item++ ); + InstanceOf( new Gen2(), Gen2, true, array, item++ ); + InstanceOf( new Gen2(), Gen3, true, array, item++ ); + + // RelationalExpression.__proto__.__proto__ === Identifier.prototype + InstanceOf( new Gen0(), Gen0, true, array, item++ ); + InstanceOf( new Gen0(), Gen1, true, array, item++ ); + InstanceOf( new Gen0(), Gen2, true, array, item++ ); + InstanceOf( new Gen0(), Gen3, true, array, item++ ); + + InstanceOf( new Gen0(), Object, true, array, item++ ); + InstanceOf( new Gen0(), Function, false, array, item++ ); + + InstanceOf( Gen0, Function, true, array, item++ ); + InstanceOf( Gen0, Object, true, array, item++ ); + + //restore + Gen3.constructor.prototype.toString = origPrototypeToString; + return array; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/output.txt new file mode 100644 index 000000000..692cf2145 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/output.txt @@ -0,0 +1,14 @@ +(true) instanceof [class Boolean] PASSED! +(false) instanceof [class Boolean] PASSED! +(Gen2 instance) instanceof 0 object PASSED! +(Gen2 instance) instanceof 1 object PASSED! +(Gen2 instance) instanceof 2 object PASSED! +(Gen2 instance) instanceof 3 object PASSED! +(Gen0 instance) instanceof 0 object PASSED! +(Gen0 instance) instanceof 1 object PASSED! +(Gen0 instance) instanceof 2 object PASSED! +(Gen0 instance) instanceof 3 object PASSED! +(Gen0 instance) instanceof [class Object] PASSED! +(Gen0 instance) instanceof [class Function] PASSED! +(0 object) instanceof [class Function] PASSED! +(0 object) instanceof [class Object] PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_001/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..7a152a898d194886b9f5ff89ac61744041ce6467 GIT binary patch literal 2989 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/output.txt new file mode 100644 index 000000000..f3a30e45b --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/output.txt @@ -0,0 +1,6 @@ +pat.constructor.prototype == Engineer.prototype PASSED! +pat instanceof Engineer PASSED! +pat instanceof WorkerBee ) PASSED! +pat instanceof Employee ) PASSED! +pat instanceof Object ) PASSED! +pat instanceof SalesPerson ) PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_002/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..d9b3cb238f29a03312322b236d24bf1252d6ae52 GIT binary patch literal 2956 zcmV;73v={CS5qcS6952s+J#unQya+@@1E(Io|X_uAij+~*sL*lKr-I7*R0JVgJk0m z@CtwLf;Ey_AbXJHnGwdjNw$hAA9CD-w<jfdoD@kn18@| zJtKi&T?sB`UjN?jy?*`ry(i%z^2*%XYpnot{tWTN_r% znTFMs(RJ6YOvhp`Uc8umaelIFuf@(?x^yWPpNdUQO#oxUd0BGJt%;IzYIMePFwdQw zU97mpa!D6!Gh42@S4Kx0Uh}zqro zRm_>fU2JQ@Suf|Fy)ZZVM8Pth^~Nl#EJ{6xj?}sbE%dsOj(LmsGXV853U-D%% zCw=(v;c-BQ+gIV2grEKWJk$U}KSsa$-ETqqTi`BtT=dr{iXbF31>4-<=TI0;!a}$t8vC^I^Z%mr`a+XiJKvNTr!);ex%0A^exBIYi+E)hnRt1!I?J5uYV#>4}-hdaY zmepjutZ-5>9fuUmqNUt(irKqdq>dMta8@0R)TjDb2k&$lD8I??{?V=uXljbc)j* zR<@^;sbo62IOj8Z)4afKUdkPz1=5MdYd)nb4Fz>Xt=&s6c*=+n4)314pSb1kp4>F8 z!^+_OWO^a>$Wuq}bGul0dBl3nHnW}_GFuPF+~!Hz?L!dK&&Q_X@e8qRwP?A;5?$jZ zZkra#^NLGtUMbtIqa`;gR{168Bnu9egl(HIwTfL9x9lj6X~8DXt7X?@56bp4ZeQh4 zo~5;7iF45xbORb677R?>vN&?AV!E(>$#Ly!4w`;)U!z~Sq9+@s2WYT`+Y7dO5tb$- zt6bP;4;;bwL(#|jkD4@&qmLbR<~N@{cI*hgEY5g`+YXHOF~t-KAVrsN(A#DShLRm@ zA!yBrWN^~vH$UGLBfcXkUh^;rOczF>9h&!Ng1>8Iq2xm9VS;ROAL%)ypDV-X4LG*d zWw=q7tA3jW7R^PyMJ!b}vfNe*R@rn_e-ZF9%SDY4$Rbw?Vrr1vrn@eiStqbq_La`0 z=9c|grdn`;?z-w!vygbqgDoEhq2^5Rs;*5`U32n9ApB~hN_|Jc7DUz8%I>tT>!N}6 z+eK$X}*EfUUbod0-_wmr7!83T6bx21WeXTe!%Q*9s1kA1;+@tl; zo% zPXiCB^oUB2sq{6KzF|yemoVdm6$m><*g9cR!eWFC5LP7YDV+Ej4Ouj_K|>`PD$`Jf z^$^xa*fe2n3ahGvDl4k&1!Yeu3sSa4*#KqVQZ`Ikk+NS?c8ao3C>y10jIy(oO;Gk5 z%G$J35^Da)=p*8Rx~ala<0Z*RB1G~yl83fF8$2us-edoVz`v$+IJO1}Wk|d=y z2$eD!QKT`Zpe{9lQ7DK}dmBa_A&kQ97)3fT>I^fcqG9-g!<2}MQ7`UPCDf0*B61)a zA;Ip5($*X8fgO(HUI?TY_rb~gaX$p8;{mAClXwuUNANM&>oguh8ajiIBZkKD2^2sE z)=>~m;^BzgcQQiyPeqi0k%&6@NrWCd9npqHBkcH@NZ`a+B&ZWjRtZMq;=E@?exq0; z824ZUAMZYi!vssGkW3_LthT#79)S#v8F+jAy*aU`$z!#86T2d?Nr7F1)X0#Rw%UC( z{??4`YFJ>BtVq&CEfXKl5%XM@Xaqdgm(EGGJ@7%n$I8@=DYPxr=RGwT$-+@@&6o#A zlfqGLBoE@J4WER7PotLktktJ+4ZO;p*JiY!z0h>2P$tPg%MZri#yJ|^-jKZ~@t%tJ zRJ|wVXcl?uS?uX&C66#GdyHA)QT&)UFh?Wsk~p$}X~|d7_&f7rU6aOOrThX>1$qdf zM-hQt1(zBK;N6m{<3DV3baq2}SI>NI+!zH+D_kmE6vV>CH>qhEF5nAs0l%<#zXuk# zP74dc{(rlq+Jo+I3sHKOHsqKqLUNQC+Mp9D`F11 z1kFQ}AQfX4kZWygz?qkp{<;DDmYk&Y`?G9g{FR>dDqaqgSyR;`rg2TQ188d^W%8u87OCNbwywkCgNaksvg zB}8XH6l}@)1R4vE zB2OJm1;d5sEQSk&X5>74}a3^^W1}?7jB%%)<>=ELK)_msT)bZ-~f53D)8(>D|+H z5fwu12heB(>NtS(1{78lqC}xA>OVE|Y-GJWgDxUVL}>&1iip|YsIvw8rh#=~OqBid zjY9d#9nJDxeTawFHGsQi__Q0Y#bGwR3%5g^t~}YT7cxsvaQ%nvclF(Z+5PViAAs0{ zF_!$k=oPh`gj((~j+;HJy+*IuyV_^;n|-VOhHmz+4j3oRfz?4{#2j2bW}G&UtqvJy z%%Roe#<+QW^@L%VCsuW1($v9OpF(9)s>StJIkj$Vrn1<1UmrnxBg#%HC%qD*#@LF6 zp#by7%hS6V{?k%H4oAJ)_%_<+;okwiCh)rPE8#%Qn-SE}0et~N(DS2;uBpEgqXlx< zPb8UyYw_I?lvytnN61d + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/output.txt new file mode 100644 index 000000000..ee84d423d --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/output.txt @@ -0,0 +1,30 @@ +(true) instanceof true PASSED! +(false) instanceof false PASSED! +(false) instanceof true PASSED! +(false) instanceof true PASSED! +(true) instanceof true PASSED! +(false) instanceof true PASSED! +(false) instanceof false PASSED! +(true) instanceof false PASSED! +(false) instanceof false PASSED! +(false) instanceof false PASSED! +(true) instanceof false PASSED! +(false) instanceof false PASSED! +(false) instanceof true PASSED! +(true) instanceof true PASSED! +(false) instanceof true PASSED! +(false) instanceof false PASSED! +(true) instanceof false PASSED! +(false) instanceof false PASSED! +(4) instanceof 3 PASSED! +(0) instanceof 3 PASSED! +(4) instanceof 3 PASSED! +(0) instanceof 0 PASSED! +(4) instanceof 4 PASSED! +(test) instanceof test PASSED! +(test) instanceof test PASSED! +(test) instanceof PASSED! +(test) instanceof PASSED! +() instanceof test PASSED! +() instanceof PASSED! +(test) instanceof PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_003_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..db8ef45cc7aae9f8c81188d5aa31ed2930eb469f GIT binary patch literal 2809 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 + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/output.txt new file mode 100644 index 000000000..f17c39290 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/output.txt @@ -0,0 +1 @@ +(toString) instanceof function Function() {} PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..58e193870cc6fad98f82d21a4c0ab3c5a090a493 GIT binary patch literal 2784 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 literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_004_rt/test.toml @@ -0,0 +1 @@ +num_ticks = 1 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/Test.as b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/Test.as new file mode 100644 index 000000000..a873b2c56 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/Test.as @@ -0,0 +1,93 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package { +import flash.display.MovieClip; public class Test extends MovieClip {} +} + +import com.adobe.test.Assert; +// var SECTION = "instanceof-006"; +// var VERSION = "ECMA_2"; +// var TITLE = "instanceof" + + + var testcases = getTestCases(); + +function getTestCases() { + var array = new Array(); + var item = 0; + + function InstanceOf( object_1, object_2, expect, array, item ) { + result = object_1 instanceof object_2; + + array[item] = Assert.expectEq( + + "(" + object_1 + ") instanceof " + object_2, + expect, + result ); + } + + function Gen3(value) { + this.value = value; + this.generation = 3; + //this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" ); + this.toString = function (){return "Gen" + this.generation+" instance"}; + } + Gen3.name = 3; + //Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\""); + + var origPrototypeToString = Gen3.constructor.prototype.toString; + Gen3.constructor.prototype.toString = function(){return this.name+" object"}; + + + function Gen2(value) { + this.value = value; + this.generation = 2; + } + Gen2.name = 2; + Gen2.prototype = new Gen3(); + + function Gen1(value) { + this.value = value; + this.generation = 1; + } + Gen1.name = 1; + Gen1.prototype = new Gen2(); + + function Gen0(value) { + this.value = value; + this.generation = 0; + } + Gen0.name = 0; + Gen0.prototype = new Gen1(); + + + function GenA(value) { + this.value = value; + this.generation = "A"; + //this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" ); + this.toString = function (){return "instance of Gen" + this.generation}; + + } + GenA.prototype = new Gen0(); + GenA.name = "A"; + + function GenB(value) { + this.value = value; + this.generation = "B"; + //this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" ); + this.toString = function (){return "instance of Gen" + this.generation}; + } + GenB.name = "B" + //GenB.prototype = void 0; + + // RelationalExpression is not an object. + +// InstanceOf( true, Boolean, false ); + InstanceOf( new Boolean(false), Boolean, true, array, item++); + + //restore + Gen3.constructor.prototype.toString = origPrototypeToString; + + return array; +} diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/config.xml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/config.xml new file mode 100644 index 000000000..18d27f9ba --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/config.xml @@ -0,0 +1,13 @@ + + + + . + ../../../lib + + false + false + false + false + + test.swf + \ No newline at end of file diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/output.txt b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/output.txt new file mode 100644 index 000000000..821d3cac7 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/output.txt @@ -0,0 +1 @@ +(false) instanceof [class Boolean] PASSED! diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.swf b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..61fd75eb9fe7eab0bccd53a00a8deaea1350948d GIT binary patch literal 2926 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 Y3nN)Cz_f>dt+D^Zu>{0_0p}*k{%$I=qW}N^ literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.toml b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.toml new file mode 100644 index 000000000..cf6123969 --- /dev/null +++ b/tests/tests/swfs/avm2/from_avmplus/ecma3/Expressions/instanceof_006/test.toml @@ -0,0 +1 @@ +num_ticks = 1