tests: Add test for Add2 op
This commit is contained in:
parent
659db7facc
commit
a9aaa0b0de
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue