diff --git a/tests/tests/regression_tests.rs b/tests/tests/regression_tests.rs index b9ac3910a..703a65669 100644 --- a/tests/tests/regression_tests.rs +++ b/tests/tests/regression_tests.rs @@ -100,6 +100,7 @@ macro_rules! swf_tests_approx { // Inside the folder is expected to be "test.swf" and "output.txt" with the correct output. swf_tests! { (action_to_integer, "avm1/action_to_integer", 1), + (add2, "avm1/add2", 1), (add_property, "avm1/add_property", 1), (arguments, "avm1/arguments", 1), (array_call_method, "avm1/array_call_method", 1), diff --git a/tests/tests/swfs/avm1/add2/output.txt b/tests/tests/swfs/avm1/add2/output.txt new file mode 100644 index 000000000..c5838177a --- /dev/null +++ b/tests/tests/swfs/avm1/add2/output.txt @@ -0,0 +1,355 @@ +// 0 + 0 +0 +// 0 + 0 +0 + +// 1 + 2 +3 +// 2 + 1 +3 + +// NaN + 1 +NaN +// 1 + NaN +NaN + +// NaN + NaN +NaN +// NaN + NaN +NaN + +// Infinity + Infinity +Infinity +// Infinity + Infinity +Infinity + +// Infinity + -Infinity +NaN +// -Infinity + Infinity +NaN + +// false + false +0 +// false + false +0 + +// true + false +1 +// false + true +1 + +// true + true +2 +// true + true +2 + +// true + false +1 +// false + true +1 + +// false + 1 +1 +// 1 + false +1 + +// true + 1 +2 +// 1 + true +2 + +// abc + 1 +abc1 +// 1 + abc +1abc + +// abc + false +abcfalse +// false + abc +falseabc + +// abc + true +abctrue +// true + abc +trueabc + +// 500 + 1 +5001 +// 1 + 500 +1500 + +// 500 + false +500false +// false + 500 +false500 + +// 500 + true +500true +// true + 500 +true500 + +// undefined + undefined +NaN +// undefined + undefined +NaN + +// undefined + 1 +NaN +// 1 + undefined +NaN + +// undefined + abc +undefinedabc +// abc + undefined +abcundefined + +// null + 1 +NaN +// 1 + null +NaN + +// null + null +NaN +// null + null +NaN + +// null + undefined +NaN +// undefined + null +NaN + +// null + false +NaN +// false + null +NaN + +// null + true +NaN +// true + null +NaN + +// null + abc +nullabc +// abc + null +abcnull + +// _level0 + 1 +NaN +// 1 + _level0 +NaN + +// _level0 + false +NaN +// false + _level0 +NaN + +// _level0 + true +NaN +// true + _level0 +NaN + +// _level0 + abc +_level0abc +// abc + _level0 +abc_level0 + +// _level0 + undefined +NaN +// undefined + _level0 +NaN + +// obj + 1 +NaN +// 1 + obj +NaN + +// obj + false +NaN +// false + obj +NaN + +// obj + true +NaN +// true + obj +NaN + +// obj + abc +[object Object]abc +// abc + obj +abc[object Object] + +// obj + undefined +NaN +// undefined + obj +NaN + +// obj + null +NaN +// null + obj +NaN + +// obj + _level0 +NaN +// _level0 + obj +NaN + +// obj + obj +NaN +// obj + obj +NaN + +// objValue1 + 1 +objValue1.valueOf +2 +// 1 + objValue1 +objValue1.valueOf +2 + +// objValue1 + false +objValue1.valueOf +1 +// false + objValue1 +objValue1.valueOf +1 + +// objValue1 + true +objValue1.valueOf +2 +// true + objValue1 +objValue1.valueOf +2 + +// objValue1 + abc +objValue1.valueOf +1abc +// abc + objValue1 +objValue1.valueOf +abc1 + +// objValue1 + undefined +objValue1.valueOf +NaN +// undefined + objValue1 +objValue1.valueOf +NaN + +// objValue1 + null +objValue1.valueOf +NaN +// null + objValue1 +objValue1.valueOf +NaN + +// objValue1 + _level0 +objValue1.valueOf +NaN +// _level0 + objValue1 +objValue1.valueOf +NaN + +// objValue1 + obj +objValue1.valueOf +NaN +// obj + objValue1 +objValue1.valueOf +NaN + +// objValue1 + obj +objValue1.valueOf +NaN +// obj + objValue1 +objValue1.valueOf +NaN + +// objValue1 + objValue1 +objValue1.valueOf +objValue1.valueOf +2 +// objValue1 + objValue1 +objValue1.valueOf +objValue1.valueOf +2 + +// objValue1 + objValue2 +objValue2.valueOf +objValue1.valueOf +1xyz +// objValue2 + objValue1 +objValue1.valueOf +objValue2.valueOf +xyz1 + +// objValue1 + objValue3 +objValue3.valueOf +objValue1.valueOf +objValue3.valueOf +NaN +// objValue3 + objValue1 +objValue1.valueOf +objValue3.valueOf +objValue3.valueOf +NaN + +// objValue1 + objValue4 +objValue4.valueOf +objValue1.valueOf +NaN +// objValue4 + objValue1 +objValue1.valueOf +objValue4.valueOf +NaN + +// objValue2 + obj +objValue2.valueOf +xyz[object Object] +// obj + objValue2 +objValue2.valueOf +[object Object]xyz + +// objValue2 + objValue2 +objValue2.valueOf +objValue2.valueOf +xyzxyz +// objValue2 + objValue2 +objValue2.valueOf +objValue2.valueOf +xyzxyz + +// objValue2 + objValue3 +objValue3.valueOf +objValue2.valueOf +objValue3.toString +xyz[type Object] +// objValue3 + objValue2 +objValue2.valueOf +objValue3.valueOf +objValue3.toString +[type Object]xyz + +// objValue3 + obj +objValue3.valueOf +objValue3.valueOf +NaN +// obj + objValue3 +objValue3.valueOf +objValue3.valueOf +NaN + +// objValue3 + objValue4 +objValue4.valueOf +objValue3.valueOf +objValue3.valueOf +NaN +// objValue4 + objValue3 +objValue3.valueOf +objValue4.valueOf +objValue3.valueOf +NaN + +// objValue4 + obj +objValue4.valueOf +NaN +// obj + objValue4 +objValue4.valueOf +NaN + diff --git a/tests/tests/swfs/avm1/add2/test.fla b/tests/tests/swfs/avm1/add2/test.fla new file mode 100644 index 000000000..38af8123c Binary files /dev/null and b/tests/tests/swfs/avm1/add2/test.fla differ diff --git a/tests/tests/swfs/avm1/add2/test.swf b/tests/tests/swfs/avm1/add2/test.swf new file mode 100644 index 000000000..335cb9fa6 Binary files /dev/null and b/tests/tests/swfs/avm1/add2/test.swf differ